OpenCV中IplImage与Qt中的QImage转化
来源:互联网 发布:苹果修改手机型号软件 编辑:程序博客网 时间:2024/05/05 23:19
OpenCV中IplImage与Qt中的QImage转化
在工程中由于要涉及到OpenCV中IplImage与Qt中的QImage转化,所以早上写了两个类,下午打算把这个类封装下,封装成dll形式。
#ifndef IMAGETRANSFORM_H#define IMAGETRANSFORM_H#include "highgui.h"#include "cv.h"#include <QImage>#define RGB_TYPE 3 //R,G,B三通道#define GRAY_TYPE 1 //格雷图,单通道class ImageCVtoQT{public:ImageCVtoQT(IplImage *_srcImage);~ImageCVtoQT();const QImage getQtImage(void);private:IplImage *srcImage; //原图//QImage desImage; //转换图int width;int height;int channel; //图像通道数};class ImageQTtoCV{public:ImageQTtoCV(QImage _srcImage);~ImageQTtoCV();IplImage *getCvImage(void);private:QImage srcImage;int width;int height;//int channel;};#endif
#include"ImageTransform.h"/**************************************************OpenCV中的图像结构IplImage转换成QT中的QImage*************************************************/ImageCVtoQT::ImageCVtoQT(IplImage *_srcImage):srcImage(_srcImage){assert(srcImage!=NULL); width=srcImage->width;height=srcImage->height;channel=srcImage->nChannels;}ImageCVtoQT::~ImageCVtoQT(){cvReleaseImage(&srcImage);}const QImage ImageCVtoQT::getQtImage(){QImage desImage=QImage(width,height,QImage::Format_RGB32);for(int i=0;i<height;i++){for(int j=0;j<width;j++){int r,g,b;if(RGB_TYPE==channel){b=(int)CV_IMAGE_ELEM(srcImage,uchar,i,j*3+0);g=(int)CV_IMAGE_ELEM(srcImage,uchar,i,j*3+1);r=(int)CV_IMAGE_ELEM(srcImage,uchar,i,j*3+2);}else if(GRAY_TYPE==channel){b=(int)CV_IMAGE_ELEM(srcImage,uchar,i,j);g=b;r=b;}desImage.setPixel(j,i,qRgb(r,g,b));}}return desImage;}///////////////////////////////////////////////////////////////////////**********************************************QT中的QImage图像结构转换成OpenCV中的IplImage**********************************************/ImageQTtoCV::ImageQTtoCV(QImage _srcImage):srcImage(_srcImage){assert(!srcImage.isNull());width=srcImage.width();height=srcImage.height();}ImageQTtoCV::~ImageQTtoCV(){}IplImage *ImageQTtoCV::getCvImage(){IplImage *desImage=cvCreateImage(cvSize(width,height),8,3);for(int i=0;i<height;i++){for(int j=0;j<width;j++){QRgb rgb=srcImage.pixel(j,i);CV_IMAGE_ELEM(desImage,uchar,i,j*3+0)=qBlue(rgb);CV_IMAGE_ELEM(desImage,uchar,i,j*3+1)=qGreen(rgb);CV_IMAGE_ELEM(desImage,uchar,i,j*3+2)=qRed(rgb);}}return desImage;}
- OpenCV中IplImage与Qt中的QImage转化
- 关于Qt中的QImage与OpenCV中IplImage的相互转换
- opencv IplImage 转化成 QImage
- Qt中使用OpenCV:“QImage 转 IplImage”及“IplImage 转 QImage”
- OpenCV 中的图像结构IPLImage 和 Qt中QImage之间的转换源代码【z】
- OpenCV 中的图像结构IPLImage 和 Qt中QImage之间的转换源代码
- Qt中IplImage转QImage
- QT中的QImage、QPixmap和opencv 中的mat转化
- 【opencv学习之二】opencv与qt图像格式交换IplImage-->QImage
- 【opencv学习之三】opencv与qt图像格式交换调试问题和补充(IplImage-->QImage)
- linux系统下opencv中IplImage转换成QT中QImage并在label上显示
- qt中使用opencv处理图片 QImage 和 IplImage 相互之间转换问题
- QT Qimage转Iplimage
- OpenCv:IplImage,Mat和Qt:QImage之间的快速转换
- QT显示OPENCV的图像(IplImage 转为QImage)
- Qt QImage与OpenCV Mat转换
- opencv cv::MAT 和 QT QImage 相互转化代码
- IplImag to QImage与QImage to IplImage
- Linux--exec函数族及system函数
- 用jaxb通过XSD生成Java类的CDATA的处理
- Linux 用户进程内存空间详解
- MVC给控件赋值(string+Model.Id)
- 计算目标日期和当天相差天数
- OpenCV中IplImage与Qt中的QImage转化
- solr1.3学习笔记
- 跟我一起写 Makefile
- POJ--2287--Tian Ji -- The Horse Racing【贪心】
- DEDE 织梦cms出现Fatal error: Maximum execution time of 30 seconds exceeded in解决办法
- 题目1489:计算两个矩阵的乘积
- 如何在properties文件中获取maven pom的version
- Project property常用设定
- 收集到的历年大学生毕业生总人数