通過(guò)V4L得到了圖像數(shù)據(jù),但是保存為ppm,jpg格式時(shí)都出現(xiàn)了顏色失真,,藍(lán)色變成了紅色,,紅色變成了藍(lán)色,而保存為bmp格式時(shí)就沒(méi)有問(wèn)題,。 經(jīng)過(guò)攝像頭采集的圖像的通道排列順序?yàn)锽GR,,而B(niǎo)MP文件的排列順序也為BGR,所以保存成BMP文件使不會(huì)出現(xiàn)什么問(wèn)題,。
但是在顯示器上顯示的時(shí)候的排列順序?yàn)镽GB,,所以如果需要顯示的化,可以把BGR順序顛倒一下,。
如果你想保存為JPEG格式的文件,,需要在壓縮前將其順序先按RGB排列,然后壓縮再保存成JPEG格式的文件,。
具體的轉(zhuǎn)換方法為:
image_buffer = tmp = (unsigned char *)map + m_buf.offsets[frame];
for(i =0;i<image_height;i++)
for(j=0;j<image_width;j++)
{
buf = *tmp;
*tmp = *(tmp+2);
*(tmp+2) = buf;
tmp += 3;
}
其中image_buf為采集的數(shù)據(jù),,在此只需要將指向R和B的指針互調(diào)一下就行,經(jīng)過(guò)處理重新得到的image_buf為RGB排列
|