【OpenCV】图像缩放

1、内置函数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必须不能同时为零

2、c++代码:

#include<iostream>
#include"opencv2/imgproc/imgproc.hpp"
#include"opencv2/highgui/highgui.hpp"
#include<opencv2/core/core.hpp>
using namespace std;
using namespace cv;

/************************************************************************/
/*
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必须不能同时为零
*/
/************************************************************************/
int main()
{
	//用mat读取
	Mat src = imread("G:\\Projects\\09CPP\\02Data\\image\\0.jpg");
	if (src.empty()){
		cout << "文件读取失败!" << endl;
		system("pause");
		return -1;
	}
	imshow("src", src);//原图像显示
	Mat res;
	resize(src, res, Size(src.cols / 2, src.rows / 2), 0, 0, INTER_LINEAR);// X Y各缩小一半
	imshow("res", res);//显示缩放过后的结果
	
	waitKey(0);
	return 0;
}

3、python代码:

#!/usr/bin/env python
# -*- coding : utf-8 -*-
# @Time      : 2020/6/29 16:03
# @Author    : Zhang Shanxiu
import cv2


def main():
    src = cv2.imread('../image/0.jpg')

    h, w, c = src.shape
    res = cv2.resize(src, (int(w / 2), int(h / 2)))

    cv2.imshow('src', src)
    cv2.imshow('res', res)
    cv2.waitKey(0)
    cv2.destroyAllWindows()


if __name__ == '__main__':
    main()

4、效果图:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值