opencv:图像的放大与缩小

1.涉及函数

函数功能

对图像进行缩放操作

函数原型

CV_EXPORTS_W 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_LINEAR – 差值方式,一般用默认参数

常用的差值方式
常用的默认差值方式有以下几种:

  • INTER_NEAREST – 最近邻插值
    INTER_LINEAR – 线性插值(默认)
    INTER_AREA – 区域插值
    INTER_CUBIC – 三次样条插值
    INTER_LANCZOS4 – Lanczos插值

返回值

注意:
参数dsize、fx和 fy,不能同时为0。

2. 代码

#include <iostream>
using namespace std;

#include "cv.h"
#include "opencv2\opencv.hpp"
using namespace cv;

#if _DEBUG
#pragma comment(lib,"opencv_world340d.lib")
#else
#pragma comment(lib,"opencv_world340.lib")
#endif

int main()
{ 
    Mat src = imread("D:\\OpencvTest\\lena.jpg");

    if (src.data != NULL)
    { 
        Mat bigImage;
        //放大图像
        resize(src, bigImage, Size(src.cols * 2, src.rows * 2));

        Mat smallImage;
        //缩小图像
        resize(src, smallImage, Size(src.cols / 2, src.rows / 2));

        imshow("原始图像", src);

        imshow("放大图像", bigImage);

        imshow("缩小图像", smallImage);

        cvWaitKey(0);
    }
    else
    { 
        cout << "图片加载失败,请检查文件是否存在!" << endl;
    }

    getchar();
    return 0;
}
    原文作者:OceanStar的学习笔记
    原文地址: https://blog.csdn.net/zhizhengguan/article/details/108883362
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞