直接上代码
#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