一、缩放函数
void resize( InputArray src,
OutputArray dst,
Size dsize,
double fx = 0,
double fy = 0,
int interpolation = INTER_LINEAR );
第一个参数:输入图像
第二个参数:输出图像
第三个参数输出图像的尺寸,如果是0,则有
dsize=Size(round(fxsrc.cols),round(fysrc,rows))计算得出
第四个参数:水平轴的缩放系数,默认为0
第五个参数:y轴撒谎能够的缩放系数,默认为0
第六个参数:插值方法:默认为INTER_LINEAR线性插值
INTER_NN - 最近邻插值,
INTER_LINEAR - 双线性插值 (缺省使用)
INTER_AREA - 使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于 CV_INTER_NN 方法…
INTER_CUBIC - 立方插值.
二、程序实现
1、code
#include<iostream>
#include<opencv2/opencv.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
int main()
{
// 读取图片
Mat srcImage = imread("C:\\Users\\zcc\\Desktop\\ghost.jpg");
if (!srcImage.data) //Check for invalid input
{
cout << "Could not open or find the image" << endl;
return -1;
}
Mat dstImage1, dstImage2;
Mat tempImage = srcImage;
// 显示图片
imshow("原图", srcImage);
// 图片的缩小
resize(tempImage, dstImage1, Size(tempImage.cols / 2, tempImage.rows / 2), 0, 0, INTER_NEAREST);
// 图片的放大
resize(tempImage, dstImage2, Size(tempImage.cols * 2, tempImage.rows * 2), 0, 0, INTER_NEAREST);
imshow("缩小图", dstImage1);
imshow("放大图", dstImage2);
waitKey();
return 0;
}
2、结果


本文详细介绍了如何使用OpenCV进行图像的缩放处理,包括缩小和放大图像的实现方法。通过具体的代码示例,展示了如何利用OpenCV的resize函数调整图像大小,并解释了不同插值方法对图像质量的影响。
7457

被折叠的 条评论
为什么被折叠?



