s1091403 作業1

 

主題: 圖像旋轉 (Image Rotation)


作業說明:

1.     一張圖像的整張圖像,旋轉一個角度(逆時針旋 0 度至 359 ),利用一個trackbar控制旋轉角度



2.     一張圖像的中心內切圓區域,旋轉一個角度(逆時針旋 0 度至 359 ),利用一個trackbar控制旋轉角度



 

開發環境:

Windows10

        Anaconda 3(22.9.0)

        Spyder 5.4.1

Python 3.9

Opencv(4.7.0)

程式片段(更詳細的截圖在readme.doc):

        使用cv2.imread()獲取圖片

        使用cv2.imshow()呈現圖片,並透過cv2.createTrackbar()設定trackbar(0度最多轉到359),並透過cv2.setTrackbarPos()初始化trackbar的位置。

        每當trackbar改變數值時,將會進入rotate_img這個函式,依照需求會有兩種形式:

        

1.         整張圖像旋轉:

使用cv2.getRotationMatrix2D()找出旋轉矩陣,再利用cv2.warpAffine( )獲得旋轉後的圖形。

2.         中心內切圓區域旋轉:

使用cv2.getRotationMatrix2D()找出旋轉矩陣。複製一份一樣型態的圖片,並將其每個像素都改成透明,獲得與原圖片相同大小的透明圖片,使用cv2.circle()於中心點畫白色的實心圓。透過cv2.bitwise_not()cv2.bitwise_and()分別取得裁減前後的兩張圖片,利用cv2.warpAffine( )利用旋轉矩陣對圓形進行旋轉,最後再將兩張圖片交集獲得旋轉後的圖形。

Demo影片: https://youtu.be/yULytPmXRUE

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1