如何使用 C++ 在 OpenCV 中旋转图像?
使用 OpenCV 的内置函数旋转图像是一件轻而易举的任务。要旋转图像,我们必须使用“highgui.hpp”和“imgproc.hpp”头文件,我们将在本程序中引入更多用于图像旋转的函数。
以下程序介绍如何使用 C++ 在 OpenCV 中旋转图像。
示例
#include<iostream>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv) {
Mat before_rotation = imread("bright.jpg");//loading image to a matrix
namedWindow("BeforeRotation");//Declaring window to show the original image//
imshow("BeforeRotation", before_rotation);//showing the image before rotation//
namedWindow("AfterRotation");//declaring window to show rotated image//
int Rotation = 180;//initialization rotation angle//
createTrackbar("Rotation", "AfterRotation", &Rotation, 360);//creating trackbar//
int Height = before_rotation.rows / 2;//getting middle point of rows//
int Width = before_rotation.cols / 2;//getting middle point of height//
while (true) {
Mat for_Rotation = getRotationMatrix2D(Point(Width, Height), (Rotation - 180), 1);//affine transformation matrix for 2D rotation//
Mat for_Rotated;//declaring a matrix for rotated image
warpAffine(before_rotation, for_Rotated, for_Rotation, before_rotation.size());//applying affine transformation//
imshow("AfterRotation", for_Rotated);//show rotated image//
int termination = waitKey(30);//allow system 30 millisecond time to create the rottion effect//
if (termination == 27){ //terminate if Esc button is pressed//
break;
}
}
return 0;
}输出

广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP