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來選取想要的區域


preview window
select window

  • 三個output範例

output.jpg
output2.jpg
output3.jpg

  • 旋轉圖片
rotate 
  • 放大圖片
zoom 

















留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1