MATLAB中的视频滤镜

时间:2013-02-11 01:47:36

标签: matlab image-processing filter signal-processing

我尝试使用MATLAB重现this paper的结果。我需要将滤镜应用于RGB通道'视频序列(每个通道每帧有1个颜色值,对应于该帧中该通道的所有像素值的总和,即如果有200个帧我有200x3矩阵,则列为RGB和行是框架)。

我应该过滤掉我获得的3个信号并应用PCA和ICA。

我是信号处理的新手,我一直在尝试使用FDATool和过滤功能,但我无法做到。我应该制作一个FIR带通滤波器,0.5-3.7 Hz,32点汉明窗口。我用FDATool制作了这样的过滤器,但我不确定Fs,我不能得到连贯的结果。

我这样做(这可能是错误的):

filt_channels = filter(my_coefficients,1,channels);

其中channel是我的200x3矩阵。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

每个通道在图像对象中定义如下:img:

R = img(:,:,1);
G = img(:,:,2);
B = img(:,:,3);

您应该能够从FDATool导出到过滤器对象。然后,您可以使用以下语法应用过滤器:

Rfilt=filter2(Object_name, R);
Gfilt=filter2(Object_name, G);
Bfilt=filter2(Object_name, B);

其中Object_name是生成的过滤器对象,R,G和B是您要过滤的对象。

如果要查看它们以查看是否获得了所需的结果,请形成矩阵A,然后使用imshow(A)。对视频流中的每个帧执行此操作。

实施例

filtImg = [];

filtImg(:,:,1) = Rfilt;
filtImg(:,:,2) = Gfilt;
filtImg (:,:,3) = Bfilt;

imshow(filtImg)

每个通道(R,G,然后B)可以在每个帧上单独过滤,然后您可以将 processpca Matlab函数应用于生成的RGB矩阵,filtImg。

<强>参考 http://www.mathworks.com/matlabcentral/newsreader/view_thread/301472 http://www.mathworks.com/help/nnet/ref/processpca.html