我正在实施一个从Video中删除闪烁的工具。要测试该工具, 我希望得到一些视频序列(任何视频格式 - MPEG4,H263,MPEG2,H264,原始YUV),其中存在明显的闪烁量。我搜索过,但找不到任何此类视频。
BTW是否有已知的视频后期处理工具,可以去除闪烁?任何指针都会有所帮助。
谢谢你。 -AD答案 0 :(得分:1)
如果你有一个YUV序列,通过在相关周期插入一个白框来添加人工闪烁在一定时期(50赫兹,60赫兹或其他任何)是非常简单的,或者你可以摆弄色度平面使得有问题的框架变得更轻。
可在此处找到测试序列。 yuv test-sequences
顺便说一句。通常,移动电话具有内置的闪烁消除功能,可以很好地工作在净频率的倍数。以帧速率而不是25或30 Hz的倍数的慢动作视频记录是某些相机模块在录制@ say VGA 100 fps时无法补偿的。
这是一个让你开始的python函数,它将YUV 4:2:0分成帧并将每个帧存储为一个单独的文件。
def split(fname):
src_yuv = open(fname, 'rb')
cif = 352*288*1.5 # YUV 4:2:0 change to reflect your input!
# Get file size in bytes
src_yuv_size = os.stat(fname)[6]
nr_files = src_yuv_size / cif
filecnt = 0
while True:
buf = src_yuv.read(cif) # read qcif number of bytes
if buf:
s = "frame" + "%s" % filecnt + ".yuv"
dst_yuv = open(s, 'wb')
dst_yuv.write(buf) # write read data into new file
print "writing frame", filecnt
dst_yuv.close()
filecnt = filecnt + 1
else:
break
src_yuv.close()