s1081423 作業1

一、作業說明

撰寫一個程式將一張圖像的 (a)整張圖像,(b)中心內切圓區域,旋轉一個角度(逆時針旋轉0度至359):利用一個滑動條(trackbar)控制旋轉角度。


二、程式功能

輸入模式 (0)整張圖像旋轉 (1)中心內切圓旋轉 (2)退出 :


(0)整張圖像旋轉 : 預設旋轉角度為30


(1)中心內切圓旋轉 : 預設旋轉角度為30




三、開發環境

    Windows 10 + Visual Studio 2022 + OpenCV 4.7.0


四、實作討論

1.整張圖像旋轉

中心點座標(center)由原圖之長、寬個別除以2獲得

為使能夠在任意位置進行旋轉變換,opencv使用以下旋轉矩陣公式 :

此公式可透過cv::getRotationMatrix2D()實現,並返回一個2x3之矩陣(rot_matrix)

再將此矩陣由cv::warpAffine()進行仿射變換,完成旋轉


2. 中心內切圓旋轉 : 採用遮罩法

l   生成一張與原圖大小相同且帶有圓形遮罩的mask,與旋轉後之圖像進行邏輯運算獲得rotated_circle

l   原圖也以類似做法,使用其他遮罩進行邏輯運算獲得src_copy

l   rotated_circlesrc_copy相加,即可獲得組合圖像result


3.trackbar


根據不同模式,trackbar調用act函數控制全域變數degree並調用相關功能函數,實現影像旋轉功能。

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6