[心得] 圖片/影片/全景圖自動拼接工具

作者: avans (阿緯)   2025-05-01 16:46:27
圖片/影片/全景圖自動拼接工具(ImageStitcherByOpenCV)
https://huggingface.co/spaces/avans06/ImageStitcherByOpenCV
在動畫中常常會有由左至右或由下至上來過場顯示一張大圖
若想將之恢復為原始的大圖
在過去需要將多張圖片透過PS等軟體來拼接合併
但合併時你可能會發現每張圖片
亮度對比或人物比例大小存在些微的不同
導致合併上會遇到許多困難
說到圖片拼接工具
幾乎沒聽過是要拼接動畫圖片
一般來說都是為了照片的全景圖而存在的
而這個工具就是為此需求而誕生的
他除了可拼接多張二次元圖片外
也能拼接照片全景圖或
輸入一個影片檔案(檢測多幀影像並合併為一張圖)
輸入的圖片必須要有一部分重疊的區域
圖片方向可以是下到上也能是左到右
程式會自動偵測,底下是測試範例
測試1
https://i.imgur.com/W68TjHs.png
https://i.imgur.com/IYORik5.png
測試2
https://i.imgur.com/WgjZlmp.jpeg
https://i.imgur.com/gHgj0xx.jpeg
___
為了達到良好的拼接效果,使用者可能需要了解各參數的作用
___
[Gradio 介面參數說明]
1. 前處理設定 (Preprocessing Settings)
裁切頂部(Crop Top %)與裁切底部(Crop Bottom %)
在進行拼接之前可去除圖片上下方不需要的區域(例如:字幕、浮水印、不相關內容),
從每張原始圖片或每個影片幀的頂部、底部移除指定高度的百分比。
2. OpenCV 拼接器設定 (OpenCV Stitcher Settings)
此區塊的設定主要影響使用 OpenCV 內建 `cv2.Stitcher` 類別進行拼接時的行為(
即當「拼接器模式」選擇 "SCANS" 或 "PANORAMA" 時)。如果選擇 "DIRECT_PAIRWISE"
,則會跳過(2.)的設定,改用下方的「3. 成對拼接設定」。
* 拼接器模式 (Stitcher Mode),選擇 OpenCV 內建拼接器的主要運作模式。
`SCANS`:針對主要由平移構成的影像序列進行優化(例如:掃描文件、相機直線移動拍
攝)。可能使用較簡單的幾何模型。
`PANORAMA`:針對相機旋轉拍攝的全景圖進行優化。通常使用完整的透視變換(
Homography)來處理複雜的幾何變形。
`DIRECT_PAIRWISE`:不使用 OpenCV 內建的 `cv2.Stitcher`。直接採用與處理影片幀相
同的「成對拼接」邏輯,依序將圖片兩兩進行特徵匹配與縫合。
* 註冊特徵解析度 (Registration Resolution)
這是進行特徵點偵測與匹配時,所使用的影像縮放比例。數值越低(例如 0.6),處理
速度越快,但對於高解析度的原始影像,可能會因為縮小而遺失部分細微特徵,導致匹配
效果下降。
* 接縫估計解析度 (Seam Estimation Resolution)
這是計算圖片間最佳拼接線(接縫)時,所使用的影像縮放比例。尋找接縫是計算密集
的操作,降低此解析度可以大幅提升速度,且通常對最終品質影響不大。
* 合成解析度 (Compositing Resolution)
這是最終將圖片混合(渲染)到輸出畫布上時,所使用的影像縮放比例。
設為 -1.0 表示使用與原始影像相同的解析度進行合成,能保留最多細節。
* 啟用波浪校正 (Enable Wave Correction)
嘗試校正全景圖中常見的透視畸變(波浪狀變形),不一定適用所有情況。
* 曝光補償 (Exposure Compensation)
選擇 OpenCV 內建拼接器用來調整不同圖片間亮度與對比度差異的方法。
`NO`:不進行曝光補償。
`GAIN`:對每張圖片計算單一的亮度增益值進行調整。
`GAIN_BLOCKS`:將圖片切分成區塊,計算每個區塊的增益值。
3. 成對拼接設定 (Pairwise Stitching Settings)(影片/直接模式/備用)
成對拼接的功能是執行時,每次僅以兩張圖片做拼接,然後反覆將全部圖片拼接完成
此區塊的設定會在以下情況生效:(1) 處理影片輸入;(2) 圖片列表模式下選擇了
"DIRECT_PAIRWISE";(3) 圖片列表模式下選擇 "SCANS" 或 "PANORAMA" 但 OpenCV 內建
拼接器失敗,程式會自動切換到備用的成對拼接方法。
* 成對變換模型 (Pairwise Transform Model)
選擇兩張圖片之間進行幾何對位時使用的數學模型,如果一種模型拼接失敗或效果不佳
,可以嘗試另一種。
`Homography`:單應性矩陣,可以處理透視變換(旋轉、平移、縮放、傾斜、梯形變形)
。適用於大多數全景圖或有視角變化的情況,但對微小錯誤較敏感,可能引入不自然的變
形。
`Affine_Partial`:部分仿射變換,處理平移、旋轉和均勻縮放。比 Affine_Full 更受
限。
`Affine_Full`:完整仿射變換,處理平移、旋轉、縮放(可不均勻)和切變(傾斜)。
比 Homography 模型更穩定,較不易產生奇怪的扭曲,適合掃描件或主要為平移/旋轉的
場景。
* 混合方法 (Blending Method)
在重疊區域用來平滑接縫的演算法。
`Linear`:線性漸變混合。計算速度較快,效果尚可。
`Multi-Band`:多頻段融合。通常能產生更自然、無縫的過渡效果,但計算成本較高。
* 啟用增益補償 (Enable Gain Compensation)
在進行混合之前,嘗試計算並補償兩張圖片之間的整體亮度差異,通常建議啟用,可以
改善拼接後亮度不均的問題。
* 匹配比例閾值 (Match Ratio Threshold)
Lowe's 比例測試閾值,用來篩選特徵匹配點對。比較最佳匹配和次佳匹配的距離,如
果比例小於此閾值,則認為是好的匹配。
數值越低篩選越嚴格,留下的匹配點越可靠,但也可能過濾掉一些有用的匹配。
* RANSAC 重投影閾值 (RANSAC Reproj Threshold)
在估計幾何變換(Homography/Affine)時,RANSAC 演算法用來判斷一個特徵匹配點對
是否為「內點 (inlier)」的最大容許重投影誤差(單位:像素)。
數值越低,對匹配精度的要求越嚴格。預設值 5.0 是個常用起點。如果對位不準確,
可以嘗試降低此值;如果找不到足夠的內點導致變換估計失敗,可以嘗試提高此值。
* 最大距離係數 (Max Distance Coeff)
在初步篩選匹配點時,限制兩個匹配的特徵點在各自影像上的像素距離。
超過此距離的匹配會被直接濾除。計算方式為:`此係數 * 影像對角線長度`。
快速排除掉明顯距離過遠、不可能是正確匹配的點對。
預設 0.5 表示匹配點的距離不能超過影像對角線長度的一半。如果相鄰圖片重疊很少或
移動很大,可能需要調高此係數。
* 最大混合寬度 (Max Blending Width)
限制成對拼接過程中,中間畫布的最大寬度。防止消耗過多記憶體。
* 最大混合高度 (Max Blending Height)
限制成對拼接過程中,中間畫布的最大高度,防止消耗過多記憶體。
* 混合平滑核心大小 (Blend Smooth Kernel Size)
在計算混合權重(遮罩)後,使用高斯模糊進行平滑處理的核心大小。必須是正的奇數
(例如 5, 15, 21)才能啟用平滑。數值越大,平滑範圍越廣,過渡越柔和,但也可能模
糊邊緣。設為 -1 或偶數可以關閉平滑步驟。
* 多頻段混合層級 (Multi-Band Blend Levels)
當混合方法選擇 "Multi-Band" 時,設定影像金字塔的層數。層數越多,理論上過渡越
平滑,但計算量也越大。預設 4 層。
4. 影片拼接器設定 (Video Stitcher Settings)
此區塊的設定僅在輸入為影片檔案時生效。
* 取樣間隔 (毫秒) (Sample Interval (ms))
設定從影片中提取幀來進行拼接的時間間隔(單位:毫秒)。
間隔越小,取樣的幀越多,拼接結果可能更連續,但處理時間也越長。間隔越大,速度越
快,但如果影片移動過快,可能導致相鄰幀之間缺乏足夠重疊而拼接失敗。
* 最大合成寬度 (影片) (Max Composite Width (Video))
在影片處理過程中,限制持續拼接的結果影像的最大寬度。防止拼接結果無限增長。當
寬度達到此限制時,會將當前的拼接結果儲存起來,並用下一幀作為新的起點開始拼接。
* 最大合成高度 (影片) (Max Composite Height (Video))
同上,限制拼接結果的最大高度。
5. 後處理設定 (Postprocessing Settings)
* 裁切黑邊 (拼接後) (Crop Black Borders (Post-Stitch))
在所有拼接步驟完成之後,自動偵測並移除最終輸出影像周圍的黑色(或接近黑色)的
無用邊界區域。
* 嚴格無黑邊 (裁剪後)(Strict No Black Edges (Post-Crop))
當啟用「嚴格無黑邊」,程式會在執行完標準的黑邊裁剪後,再執行檢查與裁剪的步驟
它會持續檢查影像的四周邊緣並裁剪任何黑色像素,達到絕對無黑邊的效果,啟用此模式
會比標準裁剪多裁掉一部分影像內容。最終輸出的影像尺寸會因此比僅使用標準裁剪時還
小。
作者: pigin852789 (pigin)   2025-05-01 16:48:00
作者: error405 (流河=L)   2025-05-01 16:48:00
這麼專業的嗎
作者: eva05s (◎)   2025-05-01 16:50:00
先推
作者: keepgoingKH (Go Go power laser~)   2025-05-01 16:54:00
專業推
作者: allen886886 (昨天沒睡飽)   2025-05-01 17:12:00
好專業
作者: AoWsL (AoWsL)   2025-05-01 17:23:00
有這種東西?沒玩過 不過這個AI圖跑運鏡也能用 謝謝https://meee.com.tw/AEjVAA6.gif

Links booklink

Contact Us: admin [ a t ] ucptt.com