2

ImageJのエッジ検索オプションを使用し、エッジが見つかった配列を取得して、プログラムで別のファイルに保存したいと考えています。

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

OK、解決策が見つかりました。問題は、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 は、派生クラスが適切な実装を提供できるようにする抽象クラスです。iptype として宣言する必要がありますColorProcessor:

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