opencv+c++实现图像缩放

1,222 阅读1分钟
直接上代码

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

int main(int argc, char* argv[]) {
	Mat img = imread("C:\\Users\\Administrator\\Desktop\\timg.jpg", CV_LOAD_IMAGE_GRAYSCALE);
	if (!img.data)
	
		return -1;
	
	//第一种方式:利用warpAffine进行缩放
	//缩放仿射矩阵,等比例缩小两倍
	Mat s = (Mat_<float>(2, 3) << 0.5, 0, 0, 0, 0.5, 0);
	Mat dst1;
	warpAffine(img, dst1, s, Size(img.cols / 2, img.rows / 2));//图像缩放
	//第二种方式:利用resize等比例缩小两倍
	Mat dst2;
	resize(img, dst2, Size(img.cols / 2, img.rows / 2), 0.5, 0.5);
	imshow("原图",img);
	imshow("warpAffine",dst1);
	imshow("resize",dst2);
	waitKey(0);
	return 0;

}


结果:




ps:如果程序闪退的话

并且报错:程序“[2232] Opencvdemo3.exe”已退出,返回值为 -1 (0xffffffff)。

说明是imread里面的图片找不到了




1