我正在寻找一个很好的解决方案,如何在视频流中对opencv中大面积的类似灰色阴影进行分割。
这是我的形象,例如:
要获得此图像,我已经进行了直方图均衡化。我想在中间检测到那个区域。这是一个很大的灰色区域,但它的灰色阴影仍然不同。
应用阈值不是解决方案,因为该区域可以是浅灰色或深灰色,以及任何类型的灰色。但该地区整个地区的灰色大致相同。 我在opencv中尝试过自适应阈值处理,但是我没有得到好结果:
我也尝试过canny。但结果也很糟糕。
所以我的问题是如何在opencv中正确分割出类似灰色的区域?
提前谢谢
答案 0 :(得分:1)
分割出这样一个区域的一个好方法是建立一组可以应用于图像的Gabor过滤器,检查每个gabor文件管理器的响应,并在靠近周围区域的区域内进行集体响应每个Gabor过滤器,你都可以渴望得到所需的部分。
1- Builde Gabor不同方向和尺寸的过滤器 2-将它们应用于图像, 3-测量每个过滤器的响应。 4-附近的每个过滤器的响应应该合理地彼此靠近。 5-然后进行分割。
希望这有帮助。
您可以在Gabor过滤器Here
答案 1 :(得分:0)
好吧,最后你可能想要使用Chan& amp; Vese(和其他类似的)给出你的图像是多么嘈杂。但目前我们可以坚持使用OpenCV中实现的基本形态运算符。
从形态关闭开始删除一些细微的细节,我在这里使用了方形9x9。然后执行形态渐变以可能突出有趣的边缘,并按简单if value > mean + std/2, then 1, else 0
进行分段。如果丢弃小组件并使用垂直结构元素进行另一次关闭(假设您想垂直连接段附近),这就是我们的结果:
答案 2 :(得分:0)
我正在使用OpenCV检测机器人 - 曲棍球比赛中的蓝色,黄色或绿色物体。在这里你有一个类似的问题,冰球的“测量”颜色取决于光和其他因素。通过将我的相机图像转换为HSV色彩空间,您可以非常好地匹配这些条件(H = Hue,S =饱和度)。所以你可以做的是将图像转换为HSV,然后为你的灰色区域定义一个阈值。(将所有像素设置在例如30,100,100和40,255,255之间,将其余设置为0。