OpenCV(4).图像操作-图像缩放与复制

832 阅读1分钟
  1. 图像缩放
  2. 图像复制

图像缩放

void resize( InputArray src, OutputArray dst,
             Size dsize, double fx = 0, double fy = 0,
             int interpolation = INTER_LINEAR );
 参数: src 输入图像
        dst     输出缩放的图像
        dsize   输出图像的大小
        fx      沿水平方向的缩放因子
        fy      沿垂直方向的缩放因子
        interpolation   插值方式(INTER_LINEAR,INTER_NEAREST,etc)
​
    //图像缩放
    Mat resize1 ;
    //方式一:设置新的图像大小 - 会出现拉伸的效果 
    resize(img, resize1, Size(200, 200), 0, 0, INTER_LINEAR);
    imshow("resize1", resize1);
    //方式二:设置缩放因子
    Mat resize2;
    resize(img, resize2, Size(), 0.5, 0.5, INTER_LINEAR);
    imshow("resize2", resize2);

原图 缩放图效果

图像裁剪与复制

    //在原图中裁剪一块区域,作为一个新的图像并展示
    //高/宽
    Mat crop = img(Range(40, 200), Range(170, 320)); 
    imshow("crop", crop);

裁剪区域

  • 图像复制到原图
    Mat crop = img(Range(40, 200), Range(170, 320)); 
    imshow("crop", crop);
    //将裁剪区域复制到原图指定区域
    int cropWidth = crop.size().width;
    int cropHeight = crop.size().height;
    crop.copyTo(img(Range(10,10+cropHeight), Range(10,10+cropWidth)));
    //crop.copyTo(img(Range(100,100+cropHeight), Range(330,330+cropWidth)));
    imshow("newImg", img);