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

把从相机采来的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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值