现在的位置: 首页 > 综合 > 正文

YV12 转换为 灰度图像 ,利用opencv进行二次开发

2013年08月21日 ⁄ 综合 ⁄ 共 576字 ⁄ 字号 评论关闭

OpenCV能处理bmp格式位图,也可以直接处理单通道的灰度图的;你从海康采集卡获得YV12的彩色图象,
直接提取Y分量就成了
灰度图。然后在OpenCV中创建单通道的I plI mage格式的图象,就可以进行处理了:
流程及部分关键代码:
1.获得海康板卡的原始码流YV12(彩色的),能得到图象的宽度W,高度h,以及大小Siz e,图象数据指针
pBuffer;
2.从原始的YV12数据帧提取Y(灰度)分量(做图象的分析一般是先将图象灰度化,以减少计算量)
int nYSiz e=w *h;                    //灰度图象的大小==YV12中Y分量长度.
char *pYData =new  char [nYSiz e];
memcpy(pYData,pBuffer,nYSiz e);     //pYData就是一帧灰度图;这句以及上一句可以省略,为了你能看的
更清楚点。
3.创建单通道的I plI mage的图象
I plI mage *pI plI mage=cvCreateI mage(cvSiz e(nWidth,nH eight),I PL_DEPTH _8U ,1);   //创建但通道的位深为
8位的I plI mage格式的图象
if(pI plI mage)
{
memcpy(pI plI mg->imageData,pYData,nYSiz e);
}
4.构造了一个I plI mage格式的图象后,你就能做你想做的事情了

抱歉!评论已关闭.