[心得] 图片/影片/全景图自动拼接工具

楼主: 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