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() 合併旋轉的內切圓、內切圓外圖片。

執行結果

  • 旋轉整張圖片



圖六、旋轉整張圖片輸出結果
  • 旋轉內切圓圖片



圖七、旋轉內切圓圖片輸出結果

影片Demo


影片、程式Demo



留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6