我有一条道路的形象 .
我对它应用了颜色阈值并得到了黄色和白色标记的掩模( cv2.inRange
)
然后我在面具上应用了特定区域的轮廓以消除噪音( cv2.findContours
)
我已经获得了良好的面具,其中白色为车道,而其他地方则为黑色 .
但是,我不能将三个通道分成不同的阵列 - 我尝试了分水岭算法,它给了我通道的边界,但是没有将它们分成不同的数组 .
我想要的结果是有三个独立的阵列,每个阵列包含每个通道的所有像素数 .
我也扭曲了这个形象 .
下面的屏幕截图是按位和掩码和原始扭曲图像 .
1 回答
您可以找到轮廓并填充它们并用作蒙版 . 要查找轮廓,可以在
OpenCV
中使用cv2.findContours()函数 . 您可以在OpenCV Docs中找到示例 .在文档中,您可以通过以下方式获取轮廓:
变量
contours
将具有轮廓列表 . 在您的情况下,每个车道将作为单独的轮廓添加 .然后如this回答中所述,您可以创建蒙版 .
而且你也可以使用cv2.drawContours函数,设置
thickness=cv2.FILLED
来创建掩码 .Modification
首先确保所有黑色区域都是
rgb
的rgb
值 . 然后你可以在here中为第二个参数尝试值,在here中为findContours()
函数的第三个参数值 .