2017-10-08 67 views
0

我有一個二維的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

很難從你的問題告訴,但我認爲你正在尋找「連接成分分析」,或「標籤」

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"); 
} 

它將「標籤」所有不同圖像中的斑點具有唯一的編號,如下所示:

enter image description here

+0

黑色部分是否也被識別? –

+1

所有的黑色像素都標出(即彩色)爲0,所以它們碰巧是黑色的。左上角塊中的所有像素都帶有標籤(即顏色)1。右側高柱中的所有像素都標記爲2.大方塊中的所有像素都標記爲3.然後, 'normalized()'(即將值分佈在0-255的全部範圍內)使圖像1變爲85,2變爲170並且3變成255。 –