如何使用c ++中的opencv为二进制图像中的连通组件着色

时间:2017-02-11 08:08:48

标签: c++ matlab opencv image-processing

我从灰度图像中计算出异常图像。结果如下图所示:

anomaly image with 5 anomalies

一旦我得到上面的结果,我想用以下颜色着色异常: 1.红色,如果异常区域大于10像素或 2.绿色,如果异常区域小于或等于10像素。

为了计算异常的属性,我使用了opencv函数' connectedComponentsWithStats()''。我可以看到该函数为我计算了异常的质心和区域..

我现在如何为所有检测到的连接组件着色?在matlab中,我使用像pixelIdList这样的东西来处理每个连接的组件,并使用repmat(1,1,3)将二进制图像扩展为RGB,然后将其中一个chanel设置为' true'& #39;,但是如何在c ++中解决所有连接的组件?

1 个答案:

答案 0 :(得分:0)

你可以在OpenCV中做同样的事情。将输出图像的通道更改为3(RGB / BGR)。然后,您可以循环遍历每个像素,并根据嵌套if循环中的(区域,质心)等其他条件将其设置为所需的颜色。