【发布时间】:2016-01-26 05:08:54
【问题描述】:
我想将时间中值过滤器应用于深度图视频以确保时间一致性并防止闪烁效果。 因此,我试图通过以下方式一次对所有视频帧应用过滤器:
首先加载所有帧,
%%% Read video sequence
numfrm = 5;
infile_name = 'depth_map_1920x1088_80fps.yuv';
width = 1920; %xdim
height = 1088; %ydim
fid_in = fopen(infile_name, 'rb');
[Yd, Ud, Vd] = yuv_import(infile_name,[width, height],numfrm);
fclose(fid_in);
然后创建一个 3-D 深度矩阵(高 x 宽 x 帧数),
%%% Build a stack of images from the video sequence
stack = zeros(height, width, numfrm);
for i=1:numfrm
RGB = yuv2rgb(Yd{i}, Ud{i}, Vd{i});
RGB = RGB(:, :, 1);
stack(:,:,i) = RGB;
end
最后沿第三方向(时间)应用一维中值滤波器
temp = medfilt1(stack);
但是,由于某种原因,这不起作用。当我尝试查看每一帧时,我得到白色图像。
frame1 = temp(:,:,1);
imshow(frame1);
任何帮助将不胜感激!
【问题讨论】:
标签: matlab image-processing coding-style video-processing