写在前面的:
这是某位袁同学的源码,我改写了一下,所以绝对是转载,但是他好像没有写博客的习惯
function dushipin(fineName, y_start, y_end, x_start, x_end) % dushipin('video1.avi', 10, 30, 20, 230); % fileName 文件名或路径 % y_start 字幕出现的左上角的y坐标 % y_end 字幕出现的右下角的y坐标 % x_start 字幕出现的左上角的x坐标 % x_end 字幕出现的右下角的x坐标 obj = VideoReader(fineName); numFrames = obj.NumberOfFrames; line = y_end - y_start + 1; for i = 1 : obj.FrameRate * 60 : numFrames if(numFrames - i < obj.FrameRate * 60) num = 1; for j = i : 10 : numFrames frame = read(obj, j); bmp((num - 1) * line + 1 : num * line, :, :) = frame(y_start : y_end, x_start : x_end, :); num = num + 1; end else for j = 1 : 60 frame = read(obj, i + (j - 1) * obj.FrameRate); bmp((j - 1) * line + 1 : j * line, :, :) = frame(y_start : y_end, x_start : x_end, :); end end imwrite(sum(double(bmp > 125), 3), strcat(num2str((i - 1) / 600), '.bmp'), 'bmp'); end