使用java进行形态学关闭

时间:2014-06-04 21:50:07

标签: java image-processing morphological-analysis

我正在尝试使用此源代码对图像进行形态学关闭(检测到精确边缘) 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); 

1 个答案:

答案 0 :(得分:0)

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

<强>输入

enter image description here

<强>输出:

enter image description here

源代码:

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);
    }
}