matlab - 在matlab中自动选择ROI

标签 matlab image-processing

我有一张图像,中间有一个图案,周围有一个白色区域。我希望只剪出矩形中的图案,同时保留多余的不必要的白色区域,即自动选择 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

最佳答案

find 返回格式为 \ 的结果,而不是 X/Y。为了让您的代码正常工作,您只需要更改

[B, A] = find( imgData ~= 255 );

关于matlab - 在matlab中自动选择ROI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17542695/

相关文章:

c++ - 在 C++ 中标记兴趣点

python - OpenCV Python中的手势

matlab - VLFeat - 如何修复 "Warning: Name is nonexistent or not a directory"?

matlab - 从 MATLAB 命令窗口搜索 Simulink MATLAB 功能 block 代码以查找匹配的字符串

algorithm - 引导滤波器如何保持强边缘?

python - 生成一维高斯核的最简单方法

python - OpenCV - 获取所有 Blob 像素

matlab - 同时选择多个矩阵中的非 NaN 值

matlab - 如何计算字节二元组的香农熵

linear-algebra - 将 solve 和/或 linsolve 与 R2010b 中的符号工具箱一起使用