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
影片連結:
留言
張貼留言