OpenCV_视频中图像的缩放

在做项目过程中,遇到要对图片进行缩放(放大再缩小)。假如播放视频,要在放大的基础上连续播放。
缩放需要用到一个opencv中的resize()函数,学习一下resize函数。

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();表示输出图像的大小。如果为0,则dsize=Size(round(fx∗src.cols),round(fy∗src.rows))
可见:fx,fy喝dsize不能同时为0.
fx,fy: 分别是图像的沿着x,y,轴的缩放系数,如果fx,fy等于0,
fx=(double)dsize.width/src.cols
fy=(double)dsize.height/src.rows

代码如下:
size等于0,fx,fy缩放系数等于2,即放大两倍。
cv::resize(src, dst, cv::Size(0,0), 2, 2, cv::INTER_LINEAR);

  #include <iostream>
#include <string>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main(int argc, char* argv[]) {
	std::string path = "C:\\Users\\Administrator\\Desktop\\funny pic\\1.jpg";
	cv::Mat src = cv::imread(path);
	int resize_height = src.rows;
	int resize_width =src.cols;
	cout << "宽:" << resize_width << "高:" << resize_height << endl;
	imshow("src", src);
	Mat dst;
	cv::resize(src, dst, cv::Size(0,0), 2, 2, cv::INTER_LINEAR);
	imshow("dst", dst);
	cv::waitKey(0);
	return 0;
}

在这里插入图片描述
size等于resize_width /2, resize_height/2,而fx,fy等于0.
cv::resize(src, dst, cv::Size(resize_width /2, resize_height/2), 0, 0, cv::INTER_LINEAR);
代码:

#include <iostream>
#include <string>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main(int argc, char* argv[]) {
	std::string path = "C:\\Users\\Administrator\\Desktop\\funny pic\\1.jpg";
	cv::Mat src = cv::imread(path);
	int resize_height = src.rows;
	int resize_width =src.cols;
	cout << "宽:" << resize_width << "高:" << resize_height << endl;
	imshow("src", src);
	Mat dst;
	cv::resize(src, dst, cv::Size(resize_width /2, resize_height/2), 0, 0, cv::INTER_LINEAR);
	imshow("dst", dst);
	cv::waitKey(0);
	return 0;
}

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值