opencv不管是1.0还是2.0以后的,都提供了改变图像大小的函数,在1.0时是cvResize,2.0以后就是resize
用法基本是一样的,这里就说说opencv2中改变图像大小的函数resize的用法
先说一下opencv2中的Size类,这是一个改变大小的类,该类的成员height和width,可以通过改变其成员height和width的大小,将Size类作为参数传递到resize中,再去改变图像的大小
下面是实例代码,在程序中,将原图与修改后的图像都显示出来,以作比较:
#include<opencv2/imgproc/imgproc.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/core/core.hpp>
#include<iostream>
using namespace cv;
using namespace std;
class Package
{
private:
public:
/*改变图像的大小
输入要改变的Size*/
Mat ChangeImageSize2(const Mat &InImage, Size &size);
};
Mat Package::ChangeImageSize2(const Mat &InImage, Size &size)
{
Mat OutImage;
resize(InImage, OutImage, size);
return OutImage;
}
Package P;
int main()
{
Mat img = imread("G:\\color.jpg");
namedWindow("原图");
imshow("原图", img);
Size size;
size.height = 400; //图像的高度
size.width = 400; //图像的宽度
Mat result = P.ChangeImageSize2(img, size); //调用Package的成员函数
namedWindow("改变后的图像1");
imshow("改变后的图像1", result);
size.height = 200; //图像的高度
size.width = 200; //图像的宽度
result = P.ChangeImageSize2(img, size); //调用Package的成员函数
namedWindow("改变后的图像2");
imshow("改变后的图像2", result);
waitKey(0);
return 0;
}
输出的结果: