OpenCV提供了许多函数来实现图像旋转和缩放。下面是一些常见的函数和示例:
- 旋转图像
使用函数cv::getRotationMatrix2D和cv::warpAffine可以实现图像旋转。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
Mat image = imread("lena.jpg");
if (image.empty()) {
cout << "Could not open or find the image" << endl;
return -1;
}
// 旋转图像
Mat rotationMatrix = getRotationMatrix2D(Point2f(image.cols/2, image.rows/2), 45, 1.0);
Mat rotatedImage;
warpAffine(image, rotatedImage, rotationMatrix, image.size());
namedWindow("Image", WINDOW_NORMAL);
imshow("Image", image);
namedWindow("Rotated Image", WINDOW_NORMAL);
imshow("Rotated Image", rotatedImage);
waitKey(0);
return 0;
}
在上面的例子中,我们使用cv::getRotationMatrix2D函数创建一个旋转矩阵,然后使用cv::warpAffine函数应用旋转矩阵来旋转图像。旋转中心在图像的中心,旋转角度为45度,缩放因子为1.0。
- 缩放图像
使用函数cv::resize可以实现图像缩放。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
Mat image = imread("lena.jpg");
if (image.empty()) {
cout << "Could not open or find the image" << endl;
return -1;
}
// 缩小图像
Mat scaledImage;
resize(image, scaledImage, Size(), 0.5, 0.5);
namedWindow("Image", WINDOW_NORMAL);
imshow("Image", image);
namedWindow("Scaled Image", WINDOW_NORMAL);
imshow("Scaled Image", scaledImage);
waitKey(0);
return 0;
}
在上面的例子中,我们使用cv::resize函数将图像缩小了一半。缩放因子为0.5,Size参数为目标图像的大小。
以上是图像旋转和缩放的两个基本操作的实现方法。根据需要,您可以使用OpenCV的其他函数来实现更高级的图像处理任务。
免费分享一些我整理的人工智能学习资料给大家,整理了很久,非常全面。包括一些人工智能基础入门视频+AI常用框架实战视频、计算机视觉、机器学习、图像识别、NLP、OpenCV、YOLO、pytorch、深度学习与神经网络等视频、课件源码、国内外知名精华资源、AI热门论文等。
下面是部分截图,点击文末名片关注我的公众号【AI技术星球】发送暗号 321 领取(一定要发暗号 321)
目录
一、人工智能免费视频课程和项目
二、人工智能必读书籍
三、人工智能论文合集
四、机器学习+计算机视觉基础算法教程
五、深度学习机器学习速查表(共26张)
学好人工智能,要多看书,多动手,多实践,要想提高自己的水平,一定要学会沉下心来慢慢的系统学习,最终才能有所收获。