Matlab 如何执行三维傅里叶变换。。。。。。?
我试图使用Matlab 如何执行三维傅里叶变换。。。。。。?,matlab,fft,Matlab,Fft,我试图使用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 Vide
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));
video
上应用fftn
时,我得到一个错误:在第行
v=read('C:\Users\Public\Videos\Sample Videos\gray\myvideo.avi') 当我取消对这行的评论时:
video=VideoReader('C:\Users\Public\Videos\Sample Videos\Wildlife.wmv');
我得到这个错误:
???类型为“char”的输入参数的未定义函数或方法“VideoReader”
我检查了fftn
和ifftn
的算法,但没有找到解决方案
问题:
fftn
和ifftn
对视频序列应用3d FFT并仅从相位谱中获取帧fftn
功能之前,是否需要将rgb视频转换为灰色视频如果我理解正确,问题不在于“fftn”,而在于“read”和“VideoReader”功能。通常,“未定义函数或方法‘读取’类型为‘char’的输入参数”错误源于特定函数不在MATLAB路径或pwd中这一事实(之前已经回答过,您应该能够找到有关此问题的更多信息) 不管怎样 $which-全部读取 及 $which-所有视频阅读器 我会告诉你他们在哪里。如果你看到“'read'/'VideoReader'未找到”,那么它们就不存在了。 在这种情况下,检查它们是否位于matlab路径(>>路径)上的子目录中。 确保它不是私有目录,否则它们将无法通过cmd行访问(请参阅了解更多信息) 分类后,检查是否正确加载,执行以下操作: $video=VideoReader('C:\Users\Public\Videos\Sample Videos\wildren.wmv') $get(视频)
干杯如果这是MATLAB,请将您的问题标记为MATLAB。是的,我正在用MATLAB编写代码。先生,您能帮我找出上述错误的解决方案吗。。。。??感谢您的错误消息表明您加载数据的方式有问题。请确保加载数据成功。您使用的是哪个版本的Matlab?非常感谢您的建议。。。。。现在我已经做了以下更正。1.我没有直接在视频上应用fftn,而是将其转换为帧序列,然后将其存储在aaray“i”中,使其正常工作。对于t=1:t f1=read(视频,t);f2=RGB2灰色(f1);%将色框转换为灰色I(:,:,I)=f2;完fftn(I);