以编程方式使用ImageJ查找边缘

时间:2012-05-18 12:23:08

标签: java edge-detection imagej

我想使用 ImageJ 的查找边缘选项,使用edge-found数组并以编程方式将其保存到另一个文件中。

ImagePlus ip1 = IJ.openImage("myimage.jpg");
ImageProcessor ip = new ColorProcessor(ip1.getWidth(), ip1.getHeight());
ip.findEdges();

然而,函数 findEdges 是抽象的,我找不到边缘找到的图像。

修改

我写了以下几行:

ip.findEdges();
BufferedImage bimg = ip.getBufferedImage();

但是,当我尝试打印出BufferedImage的RGB值时,它只会为每个像素RGB打印“-16777216”。

2 个答案:

答案 0 :(得分:2)

好的,我得到了解决方案,问题是我没有将ColorProcessor连接到图像。

ColorProcessor ip = new ColorProcessor(ImageIO.read(new File("my_image.jpg")));
ip.findEdges();
BufferedImage bimg = ip.getBufferedImage();

答案 1 :(得分:0)

ImageProcessor是一个抽象类,它允许派生类提供适当的实现。您需要将ip声明为类型ColorProcessor

ColorProcessor ip = new ColorProcessor(ip1.getWidth(), ip1.getHeight()); 
ip.findEdges();