首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移除RGB图像中对象周围的阴影

问移除RGB图像中对象周围的阴影
EN

Stack Overflow用户
提问于 2014-02-07 22:02:14
回答 3查看 570关注 0票数 1

我有一些图像,想要检测周围的红色物体。但是在蓝色物体周围有一个红色阴影,这是检测到的,并不是真的。如何通过过滤或处理图像来去除这些红色阴影。任何Matlab命令或技术提示都将不胜感激。谢谢

这是一个带有不需要的红色阴影的示例对象:http://tinypic.com/view.php?pic=o7rmsg&s=8

我在不需要的红色阴影周围添加了一个边框:http://tinypic.com/view.php?pic=28jefec&s=8

EN

回答 3

Stack Overflow用户

发布于 2014-02-07 23:27:40

代码语言:javascript
复制
I=imread('http://oi62.tinypic.com/o7rmsg.jpg');
I=imcrop(I,[200 100 400 250]);

Ir=I(:,:,1);
Ig=I(:,:,2);
Ib=I(:,:,3);
I1=Ib-Ir;
bw=im2bw(I1,graythresh(I1));
I2(:,:,1)=Ir.*uint8(bw);
I2(:,:,2)=Ig.*uint8(bw);
I2(:,:,3)=Ib.*uint8(bw);
imshow(I2)

​

​

票数 1
EN

Stack Overflow用户

发布于 2014-02-07 22:57:31

我假设你正在做某种颜色分割,可以得到一个二值图像(BW),显示在图像中检测到的所有“红色物体”,其中一些是你的真实物体,另一些是阴影。

在这种情况下,很容易使用regionprops对检测到的对象的性质进行一些检查,以过滤出不正确的匹配。

stats = regionprops(BW,'basic'); % 'basic', 'all', or specific list of properties to measure

例如,如果检测到的“红色阴影”区域在总体上总是比你正在寻找的真实对象小得多,你可以检查'Area'属性并删除任何检测到的不适合的部分。或者你可以计算形状的其他度量(例如'Eccentricity'或‘Solidity’ )-例如,如果你的真实物体大致是圆形和实心的,那么应该很容易区分这与你在示例图像中显示的区域的区别。

票数 0
EN

Stack Overflow用户

发布于 2014-02-09 18:29:29

把你的图像转换成它的灰度级等价物。现在对此图像应用一般阈值或应用具有特定值/百分比的阈值。这样做,不需要的小红色像素被消除,现在将您的新图像转换回rgb格式。您也可以尝试使用一些过滤器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21629733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档