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
留言
張貼留言