这个在OpenCV论坛里面可以找到,自己看看吧,两者互换的。http://www.opencv.org.cn/index.php/BMP%E4%B8%8EIplImage%E7%9B%B8%E4%BA%92%E8%BD%AC%E6%8D%A2

解决方案 »

  1.   

    plImage->imageData=(char *)pImage;
      

  2.   

    pImage是指向内存中bmp图像的一个指针,这块内存包括了bmp位图的文件头,位图信息表等信息的,至于Opencv中文论坛里面的bmp2iplimage,都有研究,这里还是不是很清楚
      

  3.   

    而且这里的width,height 并不预先知道,g_SDKPlay_GetBMP(GetPFPlaytypeID(),lPort, pImage, nBufSize, &pImageSize);
    这里获得的pImage,和pImageSize ;只有这样一个指针pImage,和pImageSize。就是内存中有一块数据是按bmp格式存储的,而指针pImage指向它,是byte型(char或者uchzr)型
      

  4.   

    那你就直接找到 pImage 指向数据的区域指针啊
    看看bmp图像结构
    然后再用plImage->imageData=(char *)这里是数据指针;
      

  5.   

    创建头并分配数据   
    IplImage* cvCreateImage( CvSize size, int depth, int channels ); 
    把你的数据区拷贝到IplImage的数据区
      

  6.   

    需要你自己写一个函数,可以参考网上的一个cvjpeg2ipl函数;
    这里有两个例子
    实现从内存中解压JPEG - 锋的学习园地blog.csdn.net/xfeng_12/article/details/4794583
    http://blog.sina.com.cn/s/blog_8c84cf510100tamp.html
      

  7.   

    楼主可以参考这篇文章,亲测可以实现楼主需要的功能
    http://blog.csdn.net/zj0789/article/details/38844293
      

  8.   

    建议楼主先编译链接调试OpenCV自带的相关例子代码。
      

  9.   

    http://bbs.rongkevision.com/forum.php?mod=viewthread&tid=33&page=1&extra=#pid33
    这边有答案