2022年3月6日 星期日

s1073318 作業2

 一、 作業說明 

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

二、 作業環境

Windows 10

OpenCV 4.5.5

Visual Studio 2017

三、 實作方法

1.      輸入一張圖片,長寬中較小值的一半為半徑上限。

2.      拉動trackbar時呼叫RotateImage(),首先檢查半徑值。

a.      半徑值為0時,以圖片中心旋轉整張圖片。使用getRotationMatrix2D()取得旋轉矩陣,再使用warpAffine()對圖片修改後顯示出來。

b.     半徑值大於0時,先依照半徑值以圖片中心為圓心產生maskmask_inv。用這兩個mask把原圖切成兩份,中央圓形部分使用getRotationMatrix2D()取得旋轉矩陣,再使用warpAffine()對圖片修改。最後把背景和旋轉過的圓形用add()合起來顯示。


mask

mask_invert

foreground

background

四、 執行結果

source

rotate 45 degree(radius=0)

rotate 45 degree(radius=169)




沒有留言:

張貼留言