我正在尝试使用fftn
功能,但我收到错误。我的代码是:
clc;
clear all;
close all;
% video=VideoReader('C:\Users\Public\Videos\Sample Videos\Wildlife.wmv');
video=read('C:\Users\Public\Videos\Sample Videos\gray\myvideo.avi');
f=fftn(v);
i=imread('C:\Users\Public\Videos\Sample Videos\gray\2.jpg');
f=fftshift(fftn(i));
figure,imshow(i);
figure,imshow(log(1+f),[]);
当我为单个框架应用fftn
时,我得到与fft2
函数相同的结果
i=imread('C:\Users\Public\Videos\Sample Videos\gray\2.jpg');
f=fftshift(fftn(i));
但是当我在fftn
上应用video
时,我收到了错误消息:
???未定义的功能或方法'读取'输入参数类型' char'
在线
v = read(' C:\ Users \ Public \ Videos \ Sample Videos \ gray \ myvideo.avi');
当我取消评论此行时:
video=VideoReader('C:\Users\Public\Videos\Sample Videos\Wildlife.wmv');
我收到此错误:
???未定义的功能或方法' VideoReader'对于' char'类型的输入参数。
我浏览了fftn
和ifftn
的算法,但无法找到解决方案。
问题:
fftn
和ifftn
对视频序列应用3d FFT并仅从相位光谱中取回帧?fftn
功能之前是否需要将rgb视频转换为灰色视频?答案 0 :(得分:1)
如果我理解正确,问题不在于“fftn”,而在于“read”和“VideoReader”功能。通常“对于'char'类型的输入参数的未定义函数或方法'读'错误源于特定函数不在MATLAB路径或pwd中的事实(之前已经回答过,你应该能够找到它)更多关于此的信息)。
无论如何,
$ - -all read
和
$ -all VideoReader
会告诉你他们在哪里。如果你看到''read'/'VideoReader'找不到。“然后他们不在那里。 在这种情况下,请检查它们是否位于实际位于matlab路径(>> PATH)的子目录中。 确保它不是私人目录,或者cmd行无法访问它们(有关详细信息,请参阅http://www.mathworks.ch/ch/help/matlab/matlab_prog/private-functions.html)
一旦你对它进行了排序,检查它是否正确加载,执行:
$ video = VideoReader('C:\ Users \ Public \ Videos \ Sample Videos \ Wildlife.wmv');
$ get(视频)
干杯