直接上代码,
如代码注释所示,使用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; }



