opencv图像缩放和转换qimage
来源:互联网 发布:网络推广的方式有哪些 编辑:程序博客网 时间:2024/05/16 05:10
OpenCV图像缩放使用的函数是:resize void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR ) 参数含义: InputArray src -原图像 OutputArray dst -输出图像 Size dsize -目标图像的大小 double fx=0 -在x轴上的缩放比例 double fy=0 -在y轴上的缩放比例 int interpolation -插值方式,有以下四种方式 INTER_NN -最近邻插值 INTER_LINEAR -双线性插值 (缺省使用) INTER_AREA -使用象素关系重采样,当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于 INTER_NN 方法。 INTER_CUBIC -立方插值。 说明:dsize与fx和fy必须不能同时为零 //尺寸调整 //cv::resize(images1,dstImage1,Size(images1.cols*4/5,images1.rows),0,0,INTER_LINEAR); //resize(temImage,dstImage2,Size(temImage.cols*2,temImage.rows*2),0,0,INTER_LINEAR);
MAT 转qimage
QImage MainWindow::Mat2QImage(Mat& cvImg) //opencvd的mat转换成qimage图像
{
QImage qImg;
if(cvImg.channels()==3) //3 channels color image 3通道彩色图片 红黄蓝
{
cv::cvtColor(cvImg,cvImg,CV_BGR2RGB); qImg =QImage((const unsigned char*)(cvImg.data), cvImg.cols, cvImg.rows, cvImg.cols*cvImg.channels(), QImage::Format_RGB888);}else if(cvImg.channels()==1) //grayscale image 单通道 灰度图片{ qImg =QImage((const unsigned char*)(cvImg.data), cvImg.cols,cvImg.rows, cvImg.cols*cvImg.channels(), QImage::Format_Indexed8);}else{ qImg =QImage((const unsigned char*)(cvImg.data), cvImg.cols,cvImg.rows, cvImg.cols*cvImg.channels(), QImage::Format_RGB888);}return qImg;
}
阅读全文