發表文章

[s1101405 Homework #1]

圖片
 1122 Digital Image Processing Assignment #1  報告 學號: s1101405                          姓名:蔡芷琳 主題 : 圖像感興趣區域裁切、旋轉與縮放 專案目標:     撰寫一個 OpenCV 程式,讀取一張圖像以 preview window 顯示,接著使用者可以輸入感興趣的矩形大小,並利用 trackbar 的 zoom 、 rotate 以及移動矩形左上角座標的功能在 select window 中將矩形移動到指定區域,再利用 saveFile 的功能將圖像保存成新的檔案。 共有三個測試影像檔, 分別是 yzu1.jpg 、 yzu2.jpg 、 yzu3.jpg 開發平台: Microsoft Windows 11, Visual Studio Code, OpenCV 4.9.0, Python 3.12.2 程式架構與功能說明: 1. 讓使用者可以輸入來源圖片檔案、目標圖片的長寬。 2.  可以讀取 trackbar 的 iniX 、 iniY 的 val 在 select window 中畫出目標圖片的矩形框,並且讀取 trackbar 中 zoom 、 rotate 的 val 進行縮放及旋轉。 3. 創造 zoom 的 trackbar 以及預設在 50 ,利用 zoom_factor 換算完當下的 val 後呼叫 draw_rectangle 進行縮放。 Zoom_factor 的換算的方式是 (val-50) 是將數值以 50 為中心做平移, /50 後得到的結果範圍在 -1~1 之間,再 +1 讓結果平移到 1~2 之間,作為縮放的比例。 cv.createTrackbar("zoom","preview window", 50, 100, zoom) 會將名為 zoom 的 trackbar 創建在 preview window 之中,初始值是 50 ,最大值是 100 ,當 zoom 這個 trackbar 被操作的時候呼叫 zoom 這個函式來...