如何通过opencv获取连接组件中的所有像素?
我使用新功能(3.0版)。 如何获取连接组件中的所有像素 结果如何通过opencv获取连接组件中的所有像素?,opencv,c++,opencv3.0,Opencv,C++,Opencv3.0,我使用新功能(3.0版)。 如何获取连接组件中的所有像素 结果 的第三个参数,stats提供了允许您在标记区域周围绘制边界框的信息 第二个参数,labels应该包含一个图像,其中0(黑色像素)表示未标记的像素,彩色像素表示已标记的像素组,每个标签一种颜色。请记住,非零值是唯一的,但非常小(例如,对于7个标签,从0(背景)开始,标签值将上升到6) 下面是一个示例9x9二进制图像: [ [255,255, 0, 0, 0, 0, 0,255,255], [255, 0,
的第三个参数,
stats
提供了允许您在标记区域周围绘制边界框的信息
第二个参数,labels
应该包含一个图像,其中0(黑色像素)表示未标记的像素,彩色像素表示已标记的像素组,每个标签一种颜色。请记住,非零值是唯一的,但非常小(例如,对于7个标签,从0(背景)开始,标签值将上升到6)
下面是一个示例9x9二进制图像:
[
[255,255, 0, 0, 0, 0, 0,255,255],
[255, 0, 0,255,255,255, 0, 0,255],
[ 0, 0,255, 0, 0, 0,255, 0, 0],
[ 0,255, 0, 0,255, 0, 0,255, 0],
[ 0,255, 0,255,255,255, 0,255, 0],
[ 0,255, 0, 0,255, 0, 0,255, 0],
[ 0, 0,255, 0, 0, 0,255, 0, 0],
[255, 0, 0,255,255,255, 0, 0,255],
[255,255, 0, 0, 0, 0, 0,255,255]
]
连接的零部件标签包括:
[
[1 1 0 0 0 0 0 3 3]
[1 0 0 2 2 2 0 0 3]
[0 0 2 0 0 0 2 0 0]
[0 2 0 0 4 0 0 2 0]
[0 2 0 4 4 4 0 2 0]
[0 2 0 0 4 0 0 2 0]
[0 0 2 0 0 0 2 0 0]
[5 0 0 2 2 2 0 0 6]
[5 5 0 0 0 0 0 6 6]
]
要通过imshow
将其可视化,您可能需要放大这些值。
(可以是您选择的颜色或计算的颜色的查找表,只要它们在视觉上有足够的差异)
下面是将上面的标签缩放42(最大值为255个/6个前景标签)的示例:
快速查看文档后,看起来您正在打印第三个参数,
stats
。根据文档,我希望像素位于第二个参数中,label
。我想象一个没有标签的黑色像素(零)图像,然后为3个组件中的每一个用3种颜色修补像素。使用统计数据,你可以画一个边界框,如果它能帮助你可视化的话。谢谢,我终于做到了。谢谢你的建议。
[
[ 42 42 0 0 0 0 0 126 126]
[ 42 0 0 84 84 84 0 0 126]
[ 0 0 84 0 0 0 84 0 0]
[ 0 84 0 0 168 0 0 84 0]
[ 0 84 0 168 168 168 0 84 0]
[ 0 84 0 0 168 0 0 84 0]
[ 0 0 84 0 0 0 84 0 0]
[210 0 0 84 84 84 0 0 252]
[210 210 0 0 0 0 0 252 252]
]