m_pImageBuffer转换到opencv的一种笨方法
2016-03-29 23:46
483 查看
刚刚看opencv一段时间,这中方法可以将相机采集到的m_pImageBuffer(24位的buffer)转换成opencv C++ 版本的Mat再进一步进行处理图像。
本来我通过Mat的data指针获得这个buffer的数据,发现数据使用ImageWatch是有问题,是一些重复的有规律的图像,具体原因还不清楚。(也希望能有前辈指教一下)。
后来在这位博主的博文下,知道可以用旧版本的opencv中Iplmage* 获得buffer 的数据,
http://meiguiwuxinll.blog.163.com/blog/static/636798802009111555046861/
结果试试看,能够正常在ImageWatch上面显示,可以对这幅图像进步一处理了。
然后再将IplImage*指针转换成Mat类型的结构。
具体的实现方法如下:
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);
Mat srcImage = cvarrToMat(iplgray, true);
本来我通过Mat的data指针获得这个buffer的数据,发现数据使用ImageWatch是有问题,是一些重复的有规律的图像,具体原因还不清楚。(也希望能有前辈指教一下)。
后来在这位博主的博文下,知道可以用旧版本的opencv中Iplmage* 获得buffer 的数据,
http://meiguiwuxinll.blog.163.com/blog/static/636798802009111555046861/
结果试试看,能够正常在ImageWatch上面显示,可以对这幅图像进步一处理了。
然后再将IplImage*指针转换成Mat类型的结构。
具体的实现方法如下:
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);
Mat srcImage = cvarrToMat(iplgray, true);
相关文章推荐
- python中使用OpenCV进行人脸检测的例子
- opencv 做人脸识别 opencv 人脸匹配分析
- 使用opencv拉伸图像扩大分辨率示例
- 基于C++实现kinect+opencv 获取深度及彩色数据
- OpenCV 2.4.3 C++ 平滑处理分析
- Python中使用OpenCV库来进行简单的气象学遥感影像计算
- 利用Python和OpenCV库将URL转换为OpenCV格式的方法
- python结合opencv实现人脸检测与跟踪
- Python环境搭建之OpenCV的步骤方法
- Python实现OpenCV的安装与使用示例
- 在树莓派2或树莓派B+上安装Python和OpenCV的教程
- opencv-python学习一--人脸检测
- 在Ubuntu上安装OpenCV3.0和Python-openCV的经历
- OpenCV配置,从来没有这么简单!
- ubuntu下opencv和qt的安装配置
- OpenCV学习笔记(二十五)——OpenCV图形界面设计Qt+VS2008
- 分享一些OpenCV实现立体视觉的经验
- 关于OpenCv图像变换与基本图形检测
- "应用程序正常初始化失败"-0xc0150002 解决办法
- OpenCV->HSV色彩空间