s1093334 Homework #1

 


1122 Digital Image Processing Assignment #1 報告

學號:1093334    姓名:黃芊瑜

主題:圖像感興趣區域裁切、旋轉與縮放

專案目標:

使用者輸入欲裁減圖片、裁減寬度、裁減長度後,可以透過調整trackbar裁切圖片

開發環境:

  • 用的作業系統:Windows
  • 開發環境:VScode
  • 用的套件:OpenCV version 4.9.0
  • 程式語言:Python 3.11.0

程式架構與功能說明:

整個程式主要可以分成四個部分,其流程為調整trackbar時,呼叫zoom_fun、rotate_fun等函數,這些函數會將trackbar的值存入public的變數中,再呼叫adjust對圖片進行rotate、zoom,繪製裁剪框、裁剪圖片。   

以下展示以rotate為例

1.背景設定


2.trackbar設定


3.zoom_fun
    

4.adjust 
 
                
                draw_rectangle(image, crop)
                

數學式
cv2.getRotationMatrix2D(center, angle, zoom) :

       透過此函數可以生成旋轉矩陣
  • center為圖片中心
  • angle為旋轉角度
  • zoom為縮放大小
cv2.warpAffine(image,rotation_matrix,(width, height))
    
        透過此函數將圖像旋轉和縮放
  • image為欲旋轉之圖片
  • rotation_matrix為cv2.getRotationMatrix2D(center, angle, zoom)所產生之旋轉矩陣
  • image的圖片大小
成果展示
執行範例1:

使用preview window的zoom, iniX, iniY trackbar調整選取矩形區域,利用saveFile存檔,得到目標600×400輸出圖像output.jpg






執行範例2:

使用preview window的Zoom, iniX, iniY, trackbar調整選取矩形區域,利用saveFile存檔,得到目標200×200輸出圖像output.jpg




執行範例3:

使用preview window的Zoom, Rotate, iniX, iniY trackbar調整選取矩形區域,利用saveFile存檔,得到目標600×400輸出圖像output.jpg




影片連結






留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1