Matlab 时间中值滤波在视频中的应用
我想对深度贴图视频应用时间中值滤波器,以确保时间一致性并防止闪烁效果。 因此,我试图通过以下方式在所有视频帧上同时应用过滤器: 首先加载所有帧Matlab 时间中值滤波在视频中的应用,matlab,image-processing,coding-style,video-processing,Matlab,Image Processing,Coding Style,Video Processing,我想对深度贴图视频应用时间中值滤波器,以确保时间一致性并防止闪烁效果。 因此,我试图通过以下方式在所有视频帧上同时应用过滤器: 首先加载所有帧 %%% 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
%%% 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);
然后创建三维深度矩阵(高度x宽度x帧数)
最后沿第三个方向(时间)应用一维中值滤波器
然而,由于某些原因,这是行不通的。当我尝试查看每一帧时,会得到白色图像
frame1 = temp(:,:,1);
imshow(frame1);
任何帮助都将不胜感激 我猜这实际上是可行的,但是
frame1
属于double
类,并且包含值,例如介于0和255之间。由于默认情况下,imshow
以[0,1]比例表示双图像,因此您将获得白色饱和图像
因此,我建议:
caxis auto
在imshow
之后修复显示问题
最好的,是的,你说得对!使用
imshow(frame1,[])
也可以解决此问题。非常感谢。
frame1 = temp(:,:,1);
imshow(frame1);
caxis auto