使用ImageJ

时间:2017-04-19 14:52:11

标签: java image imagej

我正在尝试使用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");

不幸的是,新创建的文件与原始文件完全相同。

顺便说一下,到目前为止,我已经发现了如何模糊,平滑,反转,平移,旋转...但这两个给我带来了困难。有人有想法吗?

感谢。

2 个答案:

答案 0 :(得分:6)

你的cross-posted question to the ImageJ forum由Stefan Helfrich回答:

  

如果您查看Javadocs for ImageProcessor,我会看到resize()以及crop()返回新的ImageProcessor个实例,并且不会对{this进行操作1}}。这就是为什么您必须使用ImagePlus.setProcessor(ImageProcessor)方法将返回的ImageProcessors添加到ip1ip2

当像这样交叉发布时,请始终包含指向其他帖子的链接,以便稍后发现此问题的人将有机会参与讨论。

答案 1 :(得分:-1)

圈子裁剪:https://youtu.be/OyiOFh1pD3k

调整大小:https://youtu.be/N_jddMMhzqc

合并两个代码。