在做镜头检测之前,为方便起见,我们先将一个视频短片提取出一定数量的图像序列。
%%%%%提取图片序列%%%%%%%
video=mmreader('test.avi','Tag','Reader');
NOF=video.NumberOfFrames;
Img_diff=zeros(NOF-1,1);
mkdir([cd,'/images']);
directory=[cd,'/images/'];
for i=1:NOF
Img_I=read(video,i);
imwrite(Img_I,[directory,[num2str(i) '.jpg'];]);
end;
镜头边缘检测算法要做的是检测出一段视频片段中发生镜头切换的图像帧。一般在同一个镜头中,相邻的图像帧是相似的,所以可以通过检测相邻图像帧特征的突变来实现。以下是经典的几种算法。这些算法其实都离不开重要的两点,怎么定义图像的特征,怎么判定相似。
绝对帧间差法:比较相邻图像帧像素的亮度和之差,当大于某个阈值时,则判定发生突变。这种算法阈值的选取会影响准确度。而对于阈值的确定,应该还有改进的空间,此处简单的取全局平均值的1.1倍为阈值。
for i=1:N