如何使用Neighborhood-for使用所有频道?

时间:2017-10-08 17:46:22

标签: cimg

我有2D的RGB图像。

我想创建具有相同颜色(RGB值)的像素组;它们从左到右,然后从上到下阅读。

当前像素的RGB值与前一个像素不同时,意味着我找到了一个组(包含以前的像素)。

我知道有CImg函数CImg_for2x2(img,x,y,z,c,I,T),但问题是它只适用于c频道,而我对RGB值感兴趣。 Doc:http://cimg.eu/reference/group__cimg__loops.html#lo6

你知道是否可以告诉" CImg"要理解我使用RGB值而不仅仅是红色值,例如?

1 个答案:

答案 0 :(得分:1)

很难从你的问题中看出来,但我认为你正在寻找"连接组件分析" ,或"标签&# 34。

CImg 工具为label()

所以,如果你从这张图片开始,里面有3个白色斑点:

enter image description here

然后运行:

#include <iostream>
#include "CImg.h"
using namespace std;
using namespace cimg_library;

int main(int argc, char** const argv)
{
    CImg<int> img("input.png");
    img.label(0,0);
    img.save_png("result.png");
}

它将&#34;标记&#34; 图像中具有唯一编号的所有不同blob,如下所示:

enter image description here