c++中opencv对图片旋转镜像并调整尺寸显示

 直接上代码,

如代码注释所示,使用cv库

1.使用imread函数读取输入图片

2.使用resize函数对图片缩放显示

3.使用flip函数对图片镜像

4.使用Rotate函数对图片旋转

5.使用imshow函数对图像显示

6.使用imwrite函数输出图像

#include 
#include 
#include   
#include   
#include   
#include   

using namespace cv;

// 图像旋转
///@ angle 要旋转的角度
void Rotate(const Mat& srcImage, Mat& destImage, double angle)
{
	Point2f center(srcImage.cols / 2, srcImage.rows / 2);//中心
	Mat M = getRotationMatrix2D(center, angle, 1);//计算旋转的仿射变换矩阵 
	warpAffine(srcImage, destImage, M, Size(srcImage.cols, srcImage.rows));//仿射变换  
	circle(destImage, center, 2, Scalar(255, 0, 0));
}

int main()
{
	std::string str = "1.bmp";
	//初始化输入图像
	cv::Mat srcImage = imread(str);
	//初始化输入缩放图像
	cv::Mat srcImage_zoom;
	Size srcImageSize = Size(960, 600);  //填入任意指定尺寸
	resize(srcImage, srcImage_zoom, srcImageSize, 0, 0, INTER_LINEAR);
	//显示输入缩放图像
	if (!srcImage_zoom.data)
		return -1;
	imshow("原始图像-缩放", srcImage_zoom);
	//初始化输出图像
	Mat destImage0;
	Mat destImage1;
	//初始化输出缩放图像
	Mat destImage_zoom;
	//镜像图片操作
	flip(srcImage, destImage0, 1);
	//旋转图片操作
	double angle = 180;//角度
	Rotate(destImage0, destImage1, angle);
	//显示输出缩放图像
	resize(destImage1, destImage_zoom, srcImageSize, 0, 0, INTER_LINEAR);
	imshow("输出图像-缩放", destImage_zoom);
	//调整输出图片的格式及质量
	std::vector compression_params;
	compression_params.push_back(IMWRITE_JPEG_QUALITY);  //选择jpeg
	compression_params.push_back(100); //在这个填入你要的图片质量
	imwrite("output.jpg", destImage1, compression_params);

	waitKey(0);

	return 0;
}

你可能感兴趣的:(opencv,c++,计算机视觉)