如何用C++实现对图像文件的放大、缩小、旋转、翻转、反色、灰度化、裁剪等功能
时间: 2023-11-20 17:07:55 浏览: 65
以下是使用OpenCV库实现C++对图像文件的放大、缩小、旋转、翻转、反色、灰度化、裁剪等功能的示例代码:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取图像文件
Mat img = imread("test.jpg");
// 放大图像
Mat img_zoom;
resize(img, img_zoom, Size(img.cols * 2, img.rows * 2));
// 缩小图像
Mat img_shrink;
resize(img, img_shrink, Size(img.cols / 2, img.rows / 2));
// 旋转图像
Mat img_rotate;
Point2f center(img.cols / 2, img.rows / 2);
Mat M = getRotationMatrix2D(center, 45, 1);
warpAffine(img, img_rotate, M, img.size());
// 翻转图像
Mat img_flip;
flip(img, img_flip, 1);
// 反色处理
Mat img_invert;
bitwise_not(img, img_invert);
// 灰度化处理
Mat img_gray;
cvtColor(img, img_gray, COLOR_BGR2GRAY);
// 裁剪图像
Rect roi(100, 100, 200, 200);
Mat img_crop = img(roi);
// 显示图像
imshow("Original Image", img);
imshow("Zoom Image", img_zoom);
imshow("Shrink Image", img_shrink);
imshow("Rotate Image", img_rotate);
imshow("Flip Image", img_flip);
imshow("Invert Image", img_invert);
imshow("Gray Image", img_gray);
imshow("Crop Image", img_crop);
waitKey(0);
return 0;
}
```