2014-01-07 155 views
2

當前我試圖將拜耳RGGB數據轉換爲iplimage。 我認爲cvtColor可能會工作,但它需要「墊」而不是iplimage。將拜耳RGGB轉換爲CV iplimage(RGB)

cvtColor(img->imageData, tmpimageData, CV_BayerBG2BGR, 0); 

是否有解決方法,也許您可​​以將Bayer RGGB轉換爲mat,然後將mat轉換爲iplimage?我真的堅持這個問題,任何幫助非常感謝!

回答

0

可惜我沒弄明白爲什麼cvtColor沒有工作,但儘管如此,我發現一個,爲什麼轉換BayerRGGB一起RGB我的SDK。

事實證明,我正在使用的矩陣視覺sdk提供了一個內置的解決方案。 我需要做的第一件事就是將PixelFormat更改爲BayerRG8以獲得8位圖像分辨率。之後,通過將idpfRGB888Packed寫入ImageDestination.pixelFormat,我設法將Bayer RGGB解碼爲RGB。

此外,我能夠以非常原始的方式完成我的轉換,這也完成了工作,但需要太多的CPU時間。 我打了我的imageData陣列,並拿出每第四個像素。

for (int count_small = 0, count_large = 0; count_large < 1000; count_small += 3, count_large +=4) 
{ 
    dest[count_small] = source[count_large]; 
    dest[count_small+1] = source[count_large+1]; 
    dest[count_small+2] = source[count_large+2]; 
} 

不乾淨,但它完成了工作。