image - 从 MATLAB 中的图像中选择灰色块
问题描述
我有一张灰色背景的白色到黑色补丁的图片,我正在尝试在 MATLAB 中编写代码来选择这 12 个补丁。我面临的问题是某些补丁没有正确检测到,如第二张图片所示。
输入图像
代码输出
我的问题是:
- 如何正确选择这 12 个 ROI?
- 在 MATLAB 中有没有更好更完美的方法?
我的实现:
CropImg=imread('patchc.jpg');
img=rgb2gray(CropImg);
rangefiltv= rangefilt(img);
imshow(rangefiltv)
mask = rangefiltv >10;
mask=~mask;
mask = bwareafilt(mask, 12);
stat = regionprops(mask,'boundingbox');
imshow(CropImg); hold on;
for cnt = 1 : numel(stat)
bb = stat(cnt).BoundingBox;
rectangle('position',bb,'edgecolor','r','linewidth',2);
end
解决方案
推荐阅读
- java - 如何在 Spring-MVC 中将数据从视图传递到控制器?
- php - Firebase not firebase not respons : Transfer-Encoding: chunked < * Connection #1 to host fcm.googleapis.com保持不变
- javascript - 在扩展程序中捕获 Javascript 页面错误
- python - pandas.read_excel 引发 TypeError: __init__() 接受 1 个位置参数,但给出了 4 个
- apache-kafka - 运行两个 MirrorMaker 2.0 实例,停止更新主题的数据复制
- answer-set-programming - 如何在答案集编程中对此进行编码?
- mysql - 在 Laravel 中两次加入同一张桌子
- python - VS Code:没有名为“编码”的模块
- javascript - 尝试在 Angular 项目中导入 SDK 时找不到模块或其相应的类型声明
- php - 在 HTTP_REFERER 中添加另一个引用域