我正在尝试使用ImageJ调整图像大小并裁剪图像。这是代码:
ImagePlus ip1 = IJ.openImage("_Pic.jpg");
ImagePlus ip2 = IJ.openImage("_Pic.jpg");
ImageProcessor imgP1 = ip1.getProcessor();
ImageProcessor imgP2 = ip2.getProcessor();
FileSaver fs1 = new FileSaver(ip1);
FileSaver fs2 = new FileSaver(ip2);
/* Trying to resize */
imgP12.resize(100); // also tried with width and height
fs12.saveAsJpeg("Resized.jpg");
/* Trying to crop */
imgP13.setRoi(100, 100, 200, 200);
imgP13.crop();
fs13.saveAsJpeg("Cropped.jpg");
不幸的是,新创建的文件与原始文件完全相同。
顺便说一下,到目前为止,我已经发现了如何模糊,平滑,反转,平移,旋转...但这两个给我带来了困难。有人有想法吗?感谢。
答案 0 :(得分:6)
你的cross-posted question to the ImageJ forum由Stefan Helfrich回答:
如果您查看Javadocs for ImageProcessor,我会看到
resize()
以及crop()
返回新的ImageProcessor
个实例,并且不会对{this
进行操作1}}。这就是为什么您必须使用ImagePlus.setProcessor(ImageProcessor)
方法将返回的ImageProcessors添加到ip1
和ip2
。
当像这样交叉发布时,请始终包含指向其他帖子的链接,以便稍后发现此问题的人将有机会参与讨论。
答案 1 :(得分:-1)