การหมุนรูปภาพโดยใช้ฟังก์ชันในตัวของ OpenCV นั้นเป็นงานที่ง่ายดาย ในการหมุนภาพ เราต้องใช้ไฟล์ส่วนหัว 'highgui.hpp' และ 'imgproc.hpp' และเราจะแนะนำฟังก์ชันเพิ่มเติมในโปรแกรมนี้ซึ่งเกี่ยวข้องกับการหมุนภาพ
โปรแกรมต่อไปนี้จะหมุนรูปภาพใน OpenCV โดยใช้ C++ ได้อย่างไร
ตัวอย่าง
#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; }
ผลลัพธ์