本教程将介绍如何使用 eclipse_hdr_tool.py 将单反相机拍摄的 RAW 格式包围曝光序列(BKT)处理成高质量的、无重影且画面居中稳定的延时摄影视频。
在月全食过程中,月球的光比变化极大。月牙部分非常亮,而食甚阶段的“红月亮”非常暗。如果只使用单次曝光,要么亮部过曝死白,要么暗部死黑。 通过包围曝光 (Bracketing),我们在同一瞬间拍摄多张不同曝光时间的照片(例如 3 张或 5 张)。 使用 HDR (High Dynamic Range) 技术,我们可以将这几张照片的亮部和暗部细节融合在一起,展现出肉眼所见的壮丽细节。
由于地球自转和相机的微小抖动,连续拍摄的照片中的月亮位置会发生偏移。
早期的对齐算法依赖于图像阈值化后的几何质心 (Centroid)。
- 致命问题:在月食“暗复明”阶段(半个亮月牙,半个暗红月亮),短曝光照片只能看到亮月牙,长曝光照片能看到整个圆盘。算法会将月牙的中心错误地当作月亮的中心。
- 结果:导致 HDR 合成时长短曝光的月球轮廓错位(出现严重重影),并在生成居中延时视频时,月亮在画面中心上下跳动。
为了解决上述问题,新算法引入了全圆盘检测 (Full Disk Detection)。
- 霍夫圆变换 (Hough Circle Transform):算法不再简单计算高光区域的中心,而是尝试拟合出整个月球的圆形边缘。
- 极低阈值最小包围圆:即使在极暗的长曝光中,也能找到完整的月球边界。
- 精准掩码 ECC 对齐:一旦锁定全圆,算法会生成一个紧贴月球的圆形掩码 (Mask),然后使用亚像素级精度的 ECC (Enhanced Correlation Coefficient) 算法,只在掩码范围内进行图像对齐。
- 结果:无论月相如何变化,算法都能死死咬住“完整的月球球体”进行对齐,彻底消除重影,并生成如丝般顺滑的居中延时视频!
pip install numpy rawpy opencv-python argparse打开终端,运行脚本并指定包含 .NEF 照片的文件夹路径:
python eclipse_hdr_tool.py --input "你的/照片/路径" --bkt 5 --normal-video --centered-video--input: (必填) 包含 RAW 文件的文件夹。--output: HDR 帧的缓存目录(默认为hdr_cache)。--bkt: 包围曝光的张数。例如,连拍 5 张不同曝光就是 5(默认为 5)。--fps: 输出视频的帧率(默认为 10)。--clahe-limit: 阴影细节增强强度。值越大,暗部越亮,但噪点也会增加(默认 4.0,推荐 3.0-6.0)。--normal-video: 生成月亮按自然轨迹移动的视频。--centered-video: 强烈推荐!生成月亮被算法强制锁定在正中心的稳定视频。--method: 对齐算法选择。默认为advanced(新算法)。如果想对比错误效果,可以传入legacy。
享受你的月食大片吧!通过全圆盘识别,即使是光比最极端的月偏食和食甚阶段,这套工具也能为你自动生成完美的 HDR 序列。