s1093345 作業1
作業說明
- 撰寫一個程式將一張圖片的(a)整張圖片,(b)中心內切圓區域,旋轉一個角度(逆時針旋轉0度至359度):利用一個滑動條(trackbar)控制旋轉角度。
圖一、Input Image
開發環境
- macOS 12.5.1
- Visual Studio Code 1.56.2
- Python 3.8.3
- OpenCV 4.6.0
實作過程
- 旋轉整張圖片
- 透過 cv2.imread() 讀取圖片位置。
- 根據圖片的長寬除以 2,計算圖片中心點位置。
- 使用 cv2.getRotationMatrix2D() 建立旋轉矩陣。
- 使用 cv2.warpAffine() 對原始圖片旋轉。
- 旋轉內切圓圖片
- 透過 cv2.imread() 讀取圖片位置。
- 根據圖片的長寬除以 2,計算圖片中心點位置、最大圓半徑。
- 透過 np.zeros() 、 cv2.circle() 建立內切圓遮罩,如圖二。
- 使用 cv2.bitwise_and() 裁切內切圓,如圖三。
圖三、裁切後內切圓
- 使用 cv2.getRotationMatrix2D() 建立旋轉矩陣。
- 透過 cv2.warpAffine() 對該內切圓圖片旋轉。
- 使用 cv2.bitwise_not()、 cv2.bitwise_and() 建立遮罩並裁切,如圖四、圖五。

圖四、內切圓外遮罩
圖五、裁切後內切圓外圖片
- 最後透過 cv2.add() 合併旋轉的內切圓、內切圓外圖片。
留言
張貼留言