【问题标题】:How to extract ROI on grayscale image using edge detection如何使用边缘检测在灰度图像上提取 ROI
【发布时间】:2016-11-17 09:39:54
【问题描述】:
我想通过边缘检测提取下图 (ROI) 上的白色区域。我想这样做是因为我必须得到非常精确的白色区域蒙版。图片是这样的:
如果我使用一些 matlab 的内置函数,问题是我也会得到白色区域之外的边缘(在黑色区域和灰色区域之间的边界上),所以如果我侵蚀外部边缘,我会失去白色区域的角落两边……
在正确检测到边缘后,我还必须关闭整个白色区域以获得蒙版...
还有什么其他建议可以计算第一张图片上的白色区域遮罩吗?我已经尝试过阈值,并且该方法非常成功...
【问题讨论】:
标签:
matlab
image-processing
computer-vision
anomaly-detection
【解决方案1】:
如果所有图像看起来都像这样,它看起来很容易解决:
Ibw=I>somevaluebiggerthangrey;
那么,如果你想要周界,那就做
Iperim=bwperim(Ibw);
您应该能够找到somevaluebiggerthangrey 的值,因为您的 rimage 显然有 3 种颜色。找到这些颜色的“峰值”值(例如,结果可能是0, 0.5 and 1)并给出两个峰值之间的值,例如somevaluebiggerthangrey=0.75。您应该能够使用histogram 和findpeaks 自动执行此操作