一、 作業說明
撰寫一個程式將一張圖像的(a)整張圖像,(b)中心內切圓區域,旋轉一個角度(逆時針旋 轉 0 度至 359 度):利用一個滑動條(trackbar)控制旋轉角度。
二、
作業環境
Windows 10
OpenCV 4.5.5
Visual Studio 2017
三、
實作方法
1.
輸入一張圖片,長寬中較小值的一半為半徑上限。
2.
拉動trackbar時呼叫RotateImage(),首先檢查半徑值。
a.
半徑值為0時,以圖片中心旋轉整張圖片。使用getRotationMatrix2D()取得旋轉矩陣,再使用warpAffine()對圖片修改後顯示出來。
b. 半徑值大於0時,先依照半徑值以圖片中心為圓心產生mask、mask_inv。用這兩個mask把原圖切成兩份,中央圓形部分使用getRotationMatrix2D()取得旋轉矩陣,再使用warpAffine()對圖片修改。最後把背景和旋轉過的圓形用add()合起來顯示。
mask |
mask_invert |
foreground |
background |
四、 執行結果
source |
rotate 45 degree(radius=0) |
rotate 45 degree(radius=169) |
沒有留言:
張貼留言