美文网首页
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