天天看点

opencv学习笔记之resize

前边一篇说opencv中缩放仅有仿射变换一种,查证才知道是错的,opencv中也有类似MATLAB中的imresize的函数,即是c++版的resize(当然还有图像金字塔方法)

其原型为void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )。它的功能与MATLAB中的imresize相似,都可以将图像重新变为任意不为零尺寸的图像。实现代码如下:

#include<opencv2\opencv.hpp>
#include<CoreWindow.h>
#include<tchar.h>

using namespace cv;
using namespace std;

int main(void)
{
	Mat img_ori = imread("..\\lena.bmp", 1);
	if (img_ori.empty())
	{
		MessageBox(NULL,_T( "load image error"), _T("load image"), 0);
		return -1;
	}

	namedWindow("original image", 1);
	imshow("original image", img_ori);

	Size dsize = Size(640, 480);//注意这里的640和480分别指图像的宽高,而imresize中的对应参数分别指行列
	Mat img_resize = Mat(dsize, img_ori.type());
	resize(img_ori, img_resize, dsize);

	namedWindow("resize window", 1);
	imshow("resize window", img_resize);

	waitKey();
	return 0;
}
           

继续阅读