永发信息网

如何使用cvCvConvert将YUV422psemi格式转换为RGB

答案:2  悬赏:80  手机版
解决时间 2021-12-23 23:32
如何使用cvCvConvert将YUV422psemi格式转换为RGB
最佳答案
法一:OpenCV自带cvCvtColor
说明:这种方法会出现图片“泛白”,具体原因网上是说cvCvtColor这个函数左右协议不同,不太懂。
代码:
void FileWriteFrames(){
char *filename = "E:\\openCV\\zhang\\yuvSource\\football_cif.yuv";
ifstream readMe(filename, ios::in | ios::binary); // 打开并读yuv数据
IplImage *image, *rgbimg, *yimg, *uimg, *vimg, *uuimg, *vvimg;
cvNamedWindow("yuv",CV_WINDOW_AUTOSIZE);
rgbimg = cvCreateImage(cvSize(ISizeX, ISizeY), IPL_DEPTH_8U, 3);
image = cvCreateImage(cvSize(ISizeX, ISizeY), IPL_DEPTH_8U, 3);

yimg = cvCreateImageHeader(cvSize(ISizeX, ISizeY), IPL_DEPTH_8U, 1); // 亮度分量
uimg = cvCreateImageHeader(cvSize(ISizeX/2, ISizeY/2), IPL_DEPTH_8U, 1); // 这两个都是色度分量
vimg = cvCreateImageHeader(cvSize(ISizeX/2, ISizeY/2), IPL_DEPTH_8U, 1);

uuimg = cvCreateImage(cvSize(ISizeX, ISizeY), IPL_DEPTH_8U, 1);
vvimg = cvCreateImage(cvSize(ISizeX, ISizeY), IPL_DEPTH_8U, 1);
int nframes;
for(nframes = 0; nframes < FCount; nframes ++){
char nframesstr[20];
readMe.read((char*)Y[nframes],ISizeX*ISizeY);
//readMe.seekg(-ISizeX*ISizeY, ios::cur);
//readMe.read((char*)buf[nframes],ISizeX*ISizeY+ISizeX/2*ISizeY/2+ISizeX/2*ISizeY/2);
readMe.read((char*)buf[nframes],ISizeX/2*ISizeY/2);
readMe.read((char*)buf2[nframes],ISizeX/2*ISizeY/2);
cvSetData(yimg,Y[nframes],ISizeX);
//cvSetData(uimg,buf[nframes] + ISizeX*ISizeY, ISizeX/2);
cvSetData(uimg,buf[nframes], ISizeX/2);
cvSetData(vimg,buf2[nframes], ISizeX/2);

cvResize(uimg,uuimg, CV_INTER_LINEAR);
cvResize(vimg,vvimg, CV_INTER_LINEAR);
cvMerge(yimg,uuimg,vvimg,NULL,image); // 合并单通道为三通道
cvCvtColor(image,rgbimg,CV_YUV2BGR);

stringstream ss; // 类型转换统一转换为char* 类型
ss << nframes;
ss << ".jpg" ;
ss >> nframesstr;
cvShowImage("yuv", rgbimg);
cvSaveImage(nframesstr,rgbimg);
int c = cvWaitKey(30);
if((char)c == 27)
{
break;
}
}
readMe.close();
cvReleaseImage(&uuimg);
cvReleaseImage(&vvimg);
cvReleaseImageHeader(&yimg);
cvReleaseImageHeader(&uimg);
cvReleaseImageHeader(&vimg);
cvReleaseImage(&image);
cvDestroyWindow("yuv");
}
全部回答
types_c.h //yuv 4:2:2 formats family cv_yuv2rgb_uyvy = 107, cv_yuv2bgr_uyvy = 108, //cv_yuv2rgb_vyuy = 109, //cv_yuv2bgr_vyuy = 110, cv_yuv2rgb_y422 = cv_yuv2rgb_uyvy, cv_yuv2bgr_y422 = cv_yuv2bgr_uyvy, cv_yuv2rgb_uynv = cv_yuv2rgb_uyvy, cv_yuv2bgr_uynv = cv_yuv2bgr_uyvy, cv_yuv2rgba_uyvy =
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
图中各城市的大气最大降温高度(距地面高度),
信阳市处女膜修补术价格?听说仁爱医院技术挺
2012年湖南卫视“新闻大求真”节目,提出如何
独山玉用什么油保养
对下列划线字的解释准确无误的一项是A.憎恶(
tp link tl-wa933re怎么样
镇远古镇到西江千户苗寨坐火车有多远
仿照下面画线的句子,再写一个句子,要求句式
不是69开头的条形码就是进口吗
单选题我国法律保护公民的名誉权不受侵害。任
电脑自带的浏览器在哪
形容数量“少”的成语
When I came back,I noticed that he was sti
攀枝花有砂舞吗?知道的说一下
气门室盖换气孔是什么作用
推荐资讯
We hope that as many as possible join us
男79年2月和女91年2月配吗
单选题Thankyou________meaboutit.A.to
飞行员在下降时承受多少G
林允儿最近还要拍中国的电影或者电视剧吗?
单选题《走进新时代》的歌词(节选):“我们
江苏泰州黄桥做中高级小提琴的作坊,比较好的
青岛开发区哪个理发店的发型设计好?
如图是某物质熔化的图象,从图中可知,它是__
dnf出了职业转换书 我想把武极转成念皇 但是
基金走向,我是新基民,看不好形势变化,心里老
乐视最近出什么事情了,怎么董事长都辞职了,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?