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:
    




留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6