opencv自帶cvcvtcolor,但是這種方法有bug,得到的會泛白。第二種方法是公式法。
法一:opencv自帶cvcvtcolor
**:
void filewriteframes()
} readme.close();
cvreleaseimage(&uuimg);
cvreleaseimage(&vvimg);
cvreleaseimageheader(&yimg);
cvreleaseimageheader(&uimg);
cvreleaseimageheader(&vimg);
cvreleaseimage(&image);
cvdestroywindow("yuv");
}
法二:公式法
**:
bool yuv420_to_bgr24(unsigned char *puc_y, unsigned char *puc_u, unsigned char *puc_v, unsigned char *puc_rgb, int width_y, int height_y)
//初始化變數
int basesize = width_y * height_y;
int rgbsize = basesize * 3;
byte* rgbdata = new byte[rgbsize];
memset(rgbdata, 0, rgbsize);
/* 變數宣告 */
int temp = 0;
byte* rdata = rgbdata; //r分量位址
byte* gdata = rgbdata + basesize; //g分量位址
byte* bdata = gdata + basesize; //b分量位址
int uvindex =0, yindex =0;
//yuv->rgb 的轉換矩陣
//double yuv2rgb[3][3] = ;
for(int y=0; y < height_y; y++)
}//將r,g,b三個分量賦給img_data
int widthstep = width_y*3;
for (int y = 0; y < height_y; y++)
}if (!puc_rgb)
delete rgbdata;
return true;
}iplimage* yuv420_to_iplimage(unsigned char* pyuv420, int width, int height)
//初始化變數
int basesize = width*height;
int imgsize = basesize*3;
byte* prgb24 = new byte[imgsize];
memset(prgb24, 0, imgsize);
/* 變數宣告 */
int temp = 0;
byte* ydata = pyuv420; //y分量位址
byte* udata = pyuv420 + basesize; //u分量位址
byte* vdata = udata + (basesize>>2); //v分量位址
if(yuv420_to_bgr24(ydata, udata, vdata, prgb24, width, height) == false || !prgb24)
iplimage *image = cvcreateimage(cvsize(width, height), 8,3);
memcpy(image->imagedata, prgb24, imgsize);
if (!image)
delete prgb24;
return image;
}void filewriteframes()
} readme.close();
}
完整**見:
參見blog:
YUV格式轉換為RGB(基於opencv)
opencv自帶cvcvtcolor,但是這種方法有bug,得到的會泛白。第二種方法是公式法。法一 opencv自帶cvcvtcolor 說明 這種方法會出現 泛白 具體原因網上是說cvcvtcolor這個函式左右協議不同,不太懂。cpp view plain copy print void fil...
YUV格式到RGB格式的轉換
yuyv格式到rgb格式的轉換 yuyv格式如下 y0u0y1v0 y2u1y3v1.說明 乙個y代表乙個畫素,而乙個y和uv組合起來構成乙個畫素,所以第0個畫素y0和第乙個畫素y1都是共用第0個畫素的u0和v0。而每個分量y,u,v都是占用乙個位元組的儲存空間。所以y0u0y1v0相當於兩個畫素,...
RGB與YUV格式 四
一 rgb rgb24一幀的大小size width heigth 3 byte,rgb32的size width heigth 4byte.1.rgb為紅綠藍三原色 yuv,rgb是色彩空間模型,而bmp,png,jpeg,gif是影象的檔案儲存格式。影象的每個畫素的三個分量為r g b,每個顏色...