OpenCV resize 图像缩放

::返回OpenCV算子速查表

图像缩放 resize

1. 函数定义

OpenCV官方文档 resize

	resize(
		InputArray src,
		OutputArray dst,
		Size dsize,
		double fx = 0,
		double fy = 0,
		int interpolation = INTER_LINEAR
		);
  • 函数改变图像尺寸,缩放的方法有两种:
  • 使用绝对尺寸缩放
// 给出明确的dsize; fx和fy将由dsize算出.
// dsize = Size(round(fx*src.cols), round(fy*src.rows))
resize(src, dst, dst.size(), 0, 0, interpolation);
  • 使用比例因子缩放
// 给出明确的fx和fy,算子会自动计算图像尺寸.
// fx = (double)dsize.width/src.cols
// fy = (double)dsize.height/src.rows
resize(src, dst, Size(), 0.5, 0.5, interpolation);
  • interpolationenum cv::InterpolationFlags 指的是插值算法类型
    在这里插入图片描述
  • 缩小图像,一般使用 INTER_AREA,放大图像一般使用 INTER_CUBIC,但是这个有点慢,使用 INTER_LINEAR 效果也很好,而且速度快。

2. 例程

  • 缩小图像
    在这里插入图片描述
  • 放大图像,从实际效果上来看,INTER_CUBIC要好很多。
    在这里插入图片描述
#include "stdafx.h"
#include <opencv.hpp>
using namespace cv;
int main()
{
	Mat m_SrcImg = imread("./flower.jpg", IMREAD_COLOR);
	imshow("阳光与海", m_SrcImg);

	Mat m_DstImg;
	//绝对尺寸缩小
	resize(m_SrcImg, m_DstImg, Size(300,400));
	imshow("绝对尺寸缩放", m_DstImg);

	//比例因子缩小
	resize(m_SrcImg, m_DstImg, Size(),0.3,0.3, INTER_AREA);
	imshow("比例因子缩小", m_DstImg);

	//放大
	Mat m_DstImg2;
	resize(m_DstImg, m_DstImg2, Size(), 2, 2, INTER_LINEAR);
	imshow("INTER_LINEAR放大", m_DstImg2);
		
	resize(m_DstImg, m_DstImg2, Size(), 2, 2, INTER_CUBIC);
	imshow("INTER_CUBIC放大", m_DstImg2);

	waitKey(0);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MechMaster

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值