编写open cv 图像旋转及缩放变换的c++代码
时间: 2024-02-01 07:15:42 浏览: 27
下面是 OpenCV 图像旋转及缩放变换的 C++ 代码示例:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
// 读入图片
Mat image = imread("test.jpg");
// 缩放变换
Mat scaledImage;
resize(image, scaledImage, Size(), 0.5, 0.5);
// 旋转变换
Point2f center(scaledImage.cols/2.0, scaledImage.rows/2.0);
double angle = 45;
Mat rotation = getRotationMatrix2D(center, angle, 1.0);
Mat rotatedImage;
warpAffine(scaledImage, rotatedImage, rotation, scaledImage.size());
// 显示结果
imshow("Original Image", image);
imshow("Scaled Image", scaledImage);
imshow("Rotated Image", rotatedImage);
waitKey(0);
return 0;
}
```
在这个示例中,我们首先读入一张图片,然后进行缩放变换,将图像大小缩小为原来的一半。接着进行旋转变换,将缩放后的图像以图像中心点为旋转中心旋转45度。最后显示原图、缩放后的图和旋转后的图像。
这段代码使用了 OpenCV 中的 `resize()` 和 `warpAffine()` 函数来实现缩放和旋转变换,分别传入源图像、变换后的图像、变换矩阵和输出图像大小等参数。我们也可以根据需要对变换矩阵进行自定义,来实现更多的变换效果。