0

我有多个图像,我正在使用 imcrop 函数来获取图像中的 ROI。imcrop 的问题是它在每张图像上给了我不同大小的 ROI。我想为每个图像获取相同大小的 ROI。imcrop 中有一个选项,我可以通过它选择大小,但为此我需要保持 ROI 修复的位置。我想修复窗口大小但改变图像上窗口的位置。Matlab 中是否有可用于此功能的功能?

4

2 回答 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]作为输入。因此,如果要保持大小固定,则必须保持固定widthheight更改矩形xminymin左上角。

我想告诉你另一个可以使用的功能,即roipoly。您将顶点的坐标与图像一起作为函数的输入。所以如果你想要一个六边形的 ROI,你会给出 6 个点作为输入。然后,您将获得一个二进制掩码,您可以将其相乘以获得您的投资回报率。

于 2013-03-19T17:56:27.307 回答