美文网首页
OPENcv从相机采集图像数据-图像处理接口IPLIMAGE结构

OPENcv从相机采集图像数据-图像处理接口IPLIMAGE结构

作者: Drlilian | 来源:发表于2019-06-18 15:15 被阅读0次

2009-12-15

 今天做了这步,把从相机采来的BYTE * m_pimagebuffer数据,要在界面上以图像的形式表达出来,并且能够进行后续的图像处理。

      首次尝试了opencv来做,感觉就像,matlab 里的仿真似的,相当容易,只需调用就OK了。

CvSize cvSize;

cvSize.width = Width;

cvSize.height = Height;

//生成支持OPENCV的IPLIMAGE数据结构,并使用相机采集的图像数据初始化

IplImage *iplImage = cvCreateImageHeader(cvSize,IPL_DEPTH_8U,3);

cvSetData(iplImage,m_pImageBuffer,Width*3);

//申请灰度空间,将BGR格式转化为灰度数据

IplImage *iplgray = cvCreateImage(cvGetSize(iplImage),IPL_DEPTH_8U,1);

cvCvtColor(iplImage,iplgray,CV_BGR2GRAY);

//为CANNY图像申请空间

IplImage *iplCanny = cvCreateImage(cvGetSize(iplImage),IPL_DEPTH_8U,1);

//使用OPENCV提供的CANNY边缘检测函数

cvSmooth(iplgray,iplCanny,3,3,0,0);

cvNot(iplgray,iplCanny);

cvCanny(iplgray,iplCanny,50,150,3);

//根据灰度图生成BGR图

IplImage *ipltemp = cvCreateImage(cvGetSize(iplImage),IPL_DEPTH_8U,3);

cvZero(ipltemp);

cvCopy(iplImage,ipltemp,iplCanny);

//从LPLIMAGE数据结构中提取图像数据

memcpy(m_pImageBuffer,(BYTE*)ipltemp->imageData,Height*Width*3);

//释放申请的图象空间

cvReleaseImage(&iplgray);

cvReleaseImage(&iplCanny);

cvReleaseImage(&ipltemp);

相关文章

网友评论

      本文标题:OPENcv从相机采集图像数据-图像处理接口IPLIMAGE结构

      本文链接:https://www.haomeiwen.com/subject/ynczxctx.html