我有一个图像,中间有一个图案,周围有一个白色区域。我希望只剪掉一个矩形中的图案,同时去掉多余的不必要的白色区域,即自动选择一个 ROI。现在我尝试通过将图像转换为灰度并使用 find 找到所有像素值不等于 255 的点来做到这一点。
之后,我只是使用非白色像素的 x 和 y 的最大值和最小值来定义 imcrop 使用的矩形,但由于某种原因,结果并不像我预期的那样。谁能给我一个关于什么问题的想法?
这是代码
function [] = Roi()
imgData=rgb2gray(imread('1.jpg'));
[A,B]=find(imgData~=255);
xmin=min(A);
xmax=max(A);
ymin=min(B);
ymax=max(B);
width = xmax - xmin;
height = ymax - ymin;
imgSelect = imcrop(imgData,[xmin,ymin,width,height]);
imshow(imgSelect);
end