s1083350 作業1

 

主題  圖像旋轉(Image Ratation)

一、題目說明

撰寫一個程式將一張圖像的(a)整張圖像,(b)中心內切圓區域,旋轉一個角度(逆時針旋 轉 0 度至 359 度),並且利用一個滑動條(trackbar)控制旋轉角度。 

二、開發環境

OS:Windows 10
Editor:Visual Studio Code
Language:Python 3.9.13 
Package:OpenCV - 4.6.0

三、程式碼說明

  • cv2.imread() 讀取圖片


  • 取出圖片長寬,並算出中心點及內切圓半徑

  • cv2.nameWindow() 幫顯示的視窗命名,以便後續操作
  • cv2.createTrackbar() 建立拉條,設成0~360 度

  • 利用np.zeros()建一個純黑遮罩,再利用cv2.circle()在上面畫一個實心白色圓


  • 以cv2.bitwise_not() 產生一個與上面相反的遮罩

  • 兩mask以cv2.bitwise_and()與原圖做and,分別取得中心內切圓及內切圓以外部分,並以cv2.add()相加2圖

  1. 旋轉整張圖

  • 以cv2.getTrackbarPos() 取得拉桿的度數,再以cv2.getRotationMatrix2D()及cv2.warpAffine()使圖片以中心旋轉
      2.旋轉中心內切圓

  • 與轉整張概念相似,但僅旋轉內切圓,轉完後再以cv2.add()拼回去

四、程式執行結果影片


留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1