我正在使用ffmpeg进行视频的背景校正,我想改善输出的强度缩放。
我的灰度视频在浅色背景上有暗物体。在8位像素强度中,光背景的像素值约为240,暗物体的强度约为120.
'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位输出。我想从分区中拉伸结果的直方图。对于更精细的动态范围,最好在映射到8位之前进行拉伸。
在我的例子中,我假设背景分割产生的结果帧的背景值接近1,暗物体的值接近0.5。然后,ffmpeg似乎将整个范围0-1映射到8位0-255。我希望它将除法结果的范围0.5-1映射到输出的8位范围。这有可能吗?或者我怎么能取得类似的结果?
答案 0 :(得分:0)
过滤器lutyuv可以这样做: 它可用于仅对亮度
应用变换函数 lutyuv=y=(val-min_intensity)*(maxval/(maxval-min_intensity))
将此滤镜应用于输出或两个输入。这需要为min_intensity提供良好的价值。如果应用于输出,min_intensity应该是输出的最小强度值。