s1081629 作業1
一、作業主題: 圖像旋轉 (Image Rotation)
撰寫一個程式將一張圖像的(a)整張圖像,(b)中心內切圓區域,旋轉一個角 度(逆時針旋轉 0 度至 359 度):利用一個滑動條(trackbar)控制旋轉角度。
二、開發環境:
OS: Windows 10
Visual Studio Code
Python 3.11.2
opencv-4.7.0.72
numpy 1.24.2
三、實作辦法:
1.利用 imread()讀取輸入的圖像。
2.讀取圖片大小並計算圖片旋轉中心位置。
3.若 mode =='b' 時,將原本圖像中心用 circle()畫出一個黑色的圓,另外 將原先中心圖像使用 getRectSubPix()取出圖像中心半徑 100 的圖像。
4.建立主視窗,並使用 createTrackbar()在視窗中增加拉桿,並連接到函式 self.__rotation()。
5.使用 getRotationMatrix2D 取得旋轉矩陣,並利用 warpAffine 將影像依 照輸入角度旋轉,若 mode=='b'時,創建一個與原始圖片大小一樣的零 矩陣 mask,繪製一個與黑色圓型相同的白色圓,之後用 bitwise_and() 將旋轉之後的圖像與 mask 遮罩,保留圓形區域內的圖像,之後圖像相加 得到 result。
四、執行結果
1. mode == 'a'
68 Degree :
203 Degree:
2.mode == 'b'
101 Degree :
219 Degree:
留言
張貼留言