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_circle與src_copy相加,即可獲得組合圖像result
3.trackbar
根據不同模式,trackbar調用act函數控制全域變數degree並調用相關功能函數,實現影像旋轉功能。
留言
張貼留言