s1093310 Homework #1
1122 Digital Image Processing
Assignment #1 報告
學號: 1093310 姓名: 胡凱騰
主題: 圖像感興趣區域裁切、旋轉與縮放
專案目標:
基於python與opencv撰寫一個程式,透過輸入指令或交互介面提供使用者縮放、旋轉圖像,和選取裁切區塊。
開發平台:
Microsoft Windows 10,
Visual Studio Code, Python 3.10.11, opencv-python 4.9.0.80
功能說明:
以命令列引數的方式傳入要操作的圖像檔案路徑,可選擇是否傳入長寬,僅傳入長寬其中之一也可以,另一未傳入的邊會維持原始值。若有傳入長寬,則程式一開始便會將圖像縮放成該大小,使用命令列引數-h來獲得更詳細的資訊。
圖1. 傳入長寬,若原始圖像過大會顯示警告,告知視窗或許無法完整顯示圖像
圖2. 傳入 –h
當開啟程式後最左方會顯示>>>,代表能開始輸入所需操作的相關指令,輸入help來顯示所有可用指令,接著會一一說明其功用。
圖3. 所有可用指令
>>> ROI [-o]
進入框選想裁切區域的互動模式,可以直接在preview視窗上點擊以框選裁切區域。可選擇傳入-o以覆蓋過往所框選的裁切區域,若未傳入且已框選過裁切區域則會禁止再次框選。
圖4. 透過在preview視窗中點擊兩下來框選裁切區域
>>> ROI_rm
移除已框選的裁切區域。
>>> ROI_move
透過trackbar調整裁切區域的位置,點擊preview或trackbar視窗並輸入w儲存操作的結果,輸入q取消該操作。
圖5. 調整裁切區域位置,會防止超出邊界
>>> img_state
顯示當前影像的長寬
>>> img_rotate
透過trackbar旋轉圖像,點擊preview或trackbar視窗並輸入w儲存操作的結果,輸入q取消該操作。
圖6. 旋轉圖像
>>> img_resize width
height
將圖像長寬縮放為指定的整數數值,若有框選裁切區域,會將其移除。
圖7. Resize,若有裁切區域被移除會顯示警告
>>> undo [n] &
redo [n]
復原或取消復原,可選擇傳入一整數參數n,將會復原或取消復原n次。
>>> save_as path
將結果儲存至指定path,若指定儲存為png且有裁切到先前旋轉後黑色背景的部分,該部分會是透明的。
圖8. 裁切後的透明區域
>>> save
儲存至原路徑。
成果展示:
留言
張貼留言