您的位置:首页 > 运维架构

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

2013-07-22 11:40 876 查看
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格式的图象后,你就能做你想做的事情了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: