gpt4 book ai didi

video - ffmpeg 强度直方图调整

转载 作者:行者123 更新时间:2023-12-04 23:27:20 26 4
gpt4 key购买 nike

我正在使用 ffmpeg 对视频进行背景校正,并且我想改进输出的强度缩放。

我的灰度视频在浅色背景上有深色移动物体。在 8 位像素强度中,浅色背景的像素值约为 240,深色物体的强度约为 120。

在 ffmpeg 之外,我通过在一定数量的帧上获取中间帧来生成背景图像。
然后,我使用 ffmpeg 通过背景图像混合/分割每一帧。 (我想使用除法,而不是背景的减法)。
[我的 ffmpeg 命令中也有一些裁剪,但这与我的问题无关]
'ffmpeg.exe', '-i', u'inputVideo.avi', '-i', u'bgMed.tif', '-y', '-r', '160', '-filter_complex', "[1:0] setsar=sar=1 [1sared]; [0:0][1sared] blend=all_mode='divide':repeatlast=1,format=gray,split=1 [int1];[int1]crop=1097:1097:12:11:[out1]", '-map', '[out1]', '-c:v', 'libxvid', '-q:v', '5', '-g', '10', u'outputVideo'
这个过程基本上是有效的,但生成的视频帧看起来太褪色了。这大概是意料之中的吧?我猜 ffmpeg 会进行除法并产生一个内部浮点结果,然后将其映射回 8 位输出。我想拉伸(stretch)除法结果的直方图。最好在映射到 8 位之前拉伸(stretch)以获得更精细的动态范围。

在我的示例中,我假设背景分割生成的结果帧的背景值接近 1,而暗对象的值接近 0.5。然后,ffmpeg 似乎将整个范围 0-1 映射到 8 位 0-255。我希望它将除法结果的范围 0.5-1 映射到输出的 8 位范围。这有可能吗?或者我还能如何获得类似的结果?

最佳答案

过滤器 lutyuv 可以做到这一点:
它可用于仅对亮度应用变换函数
lutyuv=y=(val-min_intensity)*(maxval/(maxval-min_intensity))
将此过滤器应用于输出或两个输入。这需要为 min_intensity 提供一个好的值。如果应用于输出,min_intensity 应该是输出的最小强度值。

关于video - ffmpeg 强度直方图调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39767897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com