opencv图像缩放和转换qimage

本文介绍OpenCV中图像缩放的方法及MAT数据类型转换为QImage的过程。详细解释了resize函数的参数及其作用,并给出了MAT转QImage的具体实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值