1

我正在尝试使用此源代码对图像进行形态关闭(检测到精巧的边缘) https://code.google.com/p/doccrop/source/browse/DocCrop/src/imageanalysis/morphology/Closing。 java?r=3

我创建了一个 Closing 实例,并将其应用到 BufferedImage 上,然后绘制它,但结果却是黑色图像!!起初我有一个错误,说图像必须是 type_byte_gray 所以我用它来更改类型,但我想它不起作用

      BufferedImage img1= ImageIO.read(new File(path));
  BufferedImage imge = new BufferedImage(img1.getHeight(),img1.getWidth(),BufferedImage.TYPE_BYTE_GRAY); 
4

1 回答 1

0

您可能会为此目的使用图像处理框架,例如MarvinImageJ,如下所示。

输入:

在此处输入图像描述

输出:

在此处输入图像描述

源代码:

import marvin.image.MarvinColorModelConverter;
import marvin.image.MarvinImage;
import marvin.io.MarvinImageIO;
import marvin.math.MarvinMath;
import static marvin.MarvinPluginCollection.*;

public class ClosingDemo {

    public ClosingDemo(){
        MarvinImage image = MarvinImageIO.loadImage("./res/closingIn.png");
        image = MarvinColorModelConverter.rgbToBinary(image, 127);
        morphologicalClosing(image.clone(), image, MarvinMath.getTrueMatrix(60, 60));
        MarvinImageIO.saveImage(image, "./res/closingOut.png");
    }

    public static void main(String[] args) {
        new ClosingDemo();
        System.exit(0);
    }
}
于 2014-06-05T00:15:21.840 回答