s1093303 Homework#1
1122 Digital Image Processing Assignment #1 報告
學號:s1093303 姓名:洪子涵
主題: 圖像感興趣區域裁切、旋轉與縮放
專案目標:
撰寫一個OpenCV 程式,讀取一張圖像,使用者可以從圖像選取一個感興趣的矩
形區域,裁切並縮放至指定的大小後儲存成一張新圖像,作為網頁設計的圖片素材。
以網頁要在一個600×400 像素區域顯示一張元智大學無限延伸景點介紹圖片,而手機
拍攝照片大小為4032×3024 像素的張照片為例。程式希望讓不同使用者根據自己需求
從照片選取涵蓋無限延伸藝術裝置區域(如紅色方框或黃色方框)並縮放成320×200 像
素的圖片輸出存成一個新的檔案。
開發平台:Microsoft Windows 11, Visual Studio Code, OpenCV 4.90, python3
程式架構與功能說明:
1. 使用者從Conslole 視窗輸入下列資料,來源照片檔案名稱(包含副檔名) 目標圖片的
尺寸的寬與高,如紅色字體:
input image filename: yzu1.png
target image Width: 600
target image Hidth: 400
2. 建立一個preview window 顯示原始圖片,設計Trackbar 讓使用者調整圖像縮放比例
旋轉角度與目標矩形,並可儲存圖片。
Zoom:縮放比例
Rotate:旋轉角度
iniX: 矩形左上點x 座標
iniY: 矩形左上點y 座標
SaveFile: 儲存檔案
3. 利用一個select window 顯示縮放與旋轉後影像,在上面用一個目標大小(如320×200
像素)的黑色矩形,顯示目前區域讓使用者可以即時看到選取的目標圖像。
4. 使用者透過preview window 的trackbar 調整得到理想的目標圖像後,將SaveFile
trackbar 拖曳至1 將圖片存到output 目錄下的檔案crop.jpg。
5. 成果展示與討論:
使用者在console 輸入圖片(yzu.png 大小4032×3024)與目標圖片大小(600×400)後,顯
示preview window 與select window,利用trackbar 調整Zoom, Rotate, iniX, iniY 等參數,
可以從select window 中看到選取的圖像區域。
- 輸入檔名跟想要擷取的區塊大小
- 用四個Trackbar來選取想要的區域
- 三個output範例
留言
張貼留言