您的位置:首页 > 运维架构

opencv图像缩放和转换qimage

2017-12-25 11:13 323 查看
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;


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv
相关文章推荐