我有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值而不仅仅是红色值,例如?
答案 0 :(得分:1)
很难从你的问题中看出来,但我认为你正在寻找"连接组件分析" ,或"标签&# 34。
CImg 工具为label()
。
所以,如果你从这张图片开始,里面有3个白色斑点:
然后运行:
#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,如下所示: