我有多个图像,我正在使用 imcrop 函数来获取图像中的 ROI。imcrop 的问题是它在每张图像上给了我不同大小的 ROI。我想为每个图像获取相同大小的 ROI。imcrop 中有一个选项,我可以通过它选择大小,但为此我需要保持 ROI 修复的位置。我想修复窗口大小但改变图像上窗口的位置。Matlab 中是否有可用于此功能的功能?
问问题
3096 次
2 回答
1
我相信我已经找到了从图像(交互式)裁剪固定大小窗口的解决方案。
img = imread('circuit.tif'); %your image
imshow(img);
h = imrect(gca, [75 68 130 112]);
setResizable(h,0)
position = wait(h);
imgc = imcrop(img,position);
figure();
imshow(imgc);
使用 imrect 可以设置标准的 [xmin ymin width height] 参数。将 xmin 和 ymin 设置为任何值(0,0;近似位置)并将宽度和高度设置为所需的值。
现在您可以在图像周围拖动裁剪窗口并在完成后双击它。
问候, Piter71
于 2014-08-18T06:29:38.667 回答
0
首先,我认为imcrop
. 它需要一个矩形[xmin ymin width height]
作为输入。因此,如果要保持大小固定,则必须保持固定width
并height
更改矩形xmin
的ymin
左上角。
我想告诉你另一个可以使用的功能,即roipoly。您将顶点的坐标与图像一起作为函数的输入。所以如果你想要一个六边形的 ROI,你会给出 6 个点作为输入。然后,您将获得一个二进制掩码,您可以将其相乘以获得您的投资回报率。
于 2013-03-19T17:56:27.307 回答