我正在尝试使用此源代码对图像进行形态学关闭(检测到精确边缘) 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);
答案 0 :(得分:0)
您可以使用图像处理框架,例如Marvin或ImageJ,用于此目的,如下所示。
<强>输入强>
<强>输出:强>
源代码:
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);
}
}