s1101440 Homework #1
1122 Digital Image Processing Assignment
#1
學號: 1101440 姓名: 崔祐誠
主題: 圖像感興趣區域裁切、旋轉與縮放
專案目標:開發一款能夠讓使用者選取圖像中的特定區域,並對該區域進行裁切、旋轉和縮放的工具,以生成適合網頁設計需求的圖片素材。
開發平台:Microsoft
Windows 11, Visual Studio 2022, OpenCV 4.90, C++14
程式架構與功能說明:
1.資料輸入階段:首先,使用者透過輸入圖片檔名稱ex:yzu1.jpg,以及用於裁切的目標圖片尺寸。
2.預覽與調整階段:程式會創建Preview Window,展示所選擇的原始圖片。同時,通過不同功能的Trackbar讓使用者能夠實時調整圖像的縮放比例、旋轉角度以及目標裁切區域的位置。其中包括:
Zoom:對圖片進行縮小放大操作。
Rotate:控制旋轉角度。
iniX 和 iniY:定位矩形裁切區域左上角的 X 和 Y 坐標。
SaveFile:若拉桿設置為1,則儲存矩形框內圖片。
3.選取與儲存階段:另外一個視窗Select Window會顯示根據調整後的圖像,並用一個目標大小的黑色矩形框出用戶即將裁切的區域。這讓使用者可以更精準地選擇想要的圖片部分。當使用者通過調整得到滿意的圖像後,將
"SaveFile" 拉桿拖動至 1,程式則會將該圖像保存至指定的輸出目錄下。
程式說明:
預覽與調整階段:創建視窗跟trackbars
成果展示與討論:
範例一:
輸入:yzu1.jpg,600,400
範例二:
一樣輸入:yzu1.jpg,600,400
範例三:
範例四:
輸入:yzu3.JPG 300,600
遇到困難及解決方法:
1. 圖片邊界問題:圖片的旋轉和縮放使得Trackbar的靜態設置難以適用。解決方法是計算當前縮放比例下的圖片最大長寬,並限制iniX和iniY值,防止它們超出圖片邊界。
2.
存檔問題: 最初計劃添加路徑檢查和動態目錄創建功能,但由於C++版本限制和權限問題,這一想法被放棄。改為在作業文件中預先創建好資料夾,並使用相對路徑進行操作。
3.
矩形顏色問題: 初步選擇的細灰色線條在某些情況下會出現消失的問題。後來改用較粗的黑色線條後,問題得到解決。
留言
張貼留言