我正在尝试使用此源代码对图像进行形态学闭合(检测到精明的边缘) 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);
您可以使用图像处理框架,如 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);
}
}