繁体   English   中英

Marvin图像处理框架 - 侵蚀插件问题

[英]Marvin Image Processing Framework - Erosion plugin issue

我在Marvin Image Processing Framework中遇到了Erosion插件的问题。 我想做侵蚀,但不幸的是,在那之后我没有输出图像。 这是我的代码:

tempPlugin  = new Erosion();
boolean[][] m = new boolean[][] {
{true,true,true},
{true,true,true},
{true,true,true}
};
tempPlugin.setAttributes("matrix", m);
resultImage = MarvinColorModelConverter.rgbToBinary(resultImage, 127);
tempPlugin.process(resultImage, resultImage);
resultImage = MarvinColorModelConverter.binaryToRgb(resultImage);
resultImage.update();
imagePanelNew.setImage(resultImage);

我正在使用Java JDK 1.7和Marvin Framework 1.5.0当然,我已尝试对.jar文件执行相同操作,无需更改。

有人可以帮帮我吗?

您的代码中存在一些问题。 你没有正确使用马文。

1.加载插件

您必须使用MarvinPluginLoader创建一个Erosion插件:

tempPlugin  = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.morphological.erosion");

因此,Erosion插件和依赖项(因为插件可能使用其他插件)被正确加载。

2.在侵蚀的情况下,您不能使用相同的图像对象作为输入和输出图像

您必须使用两个引用,例如克隆:

tempPlugin.process(resultImage.clone(), resultImage);



例:

下面是一个源代码,它实现了Erosion Plug-in页面中显示的相同结果:

public class SimpleExample {

private MarvinImagePlugin tempPlugin;

public SimpleExample(){

    // 1. Load and set up plug-in.
    tempPlugin  = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.morphological.erosion");

    boolean[][] m = new boolean[][] {
    {true,true,true},
    {true,true,true},
    {true,true,true}
    };

    tempPlugin.setAttributes("matrix", m);

    // 2. Load image
    MarvinImage image = MarvinImageIO.loadImage("./res/erosion_in.png");
    MarvinImage resultImage = MarvinColorModelConverter.rgbToBinary(image, 127);

    // 3. Process and save image
    tempPlugin.process(resultImage.clone(), resultImage);
    resultImage = MarvinColorModelConverter.binaryToRgb(resultImage);
    resultImage.update();
    MarvinImageIO.saveImage(resultImage, "./res/erosion_out.png");
}

public static void main(String[] args) {
    new SimpleExample();
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM