2

我想使用ImageJ的 find edges 选项,拥有 edges-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”。

4

2 回答 2

2

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

ColorProcessor ip = new ColorProcessor(ImageIO.read(new File("my_image.jpg")));
ip.findEdges();
BufferedImage bimg = ip.getBufferedImage();
于 2012-05-18T12:46:57.947 回答
0

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

ColorProcessor ip = new ColorProcessor(ip1.getWidth(), ip1.getHeight()); 
ip.findEdges();
于 2012-05-18T12:32:24.143 回答