使用java进行形态学闭运算

问题描述 投票:0回答: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); 
java image-processing mathematical-morphology
1个回答
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);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.