Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab-如何使用fft2和fftshift应用低通和高通滤波器?_Matlab_Fft_Lowpass Filter_Highpass Filter - Fatal编程技术网

Matlab-如何使用fft2和fftshift应用低通和高通滤波器?

Matlab-如何使用fft2和fftshift应用低通和高通滤波器?,matlab,fft,lowpass-filter,highpass-filter,Matlab,Fft,Lowpass Filter,Highpass Filter,我不知道如何在jpg图像上应用低通和高通滤波器 通过以下公式计算过滤器: 函数[cL,cH]=getfilters(半径) [x,y]=meshgrid(-128:127,-128:127); z=sqrt(x.^2+y.^2); cL=z

我不知道如何在jpg图像上应用低通和高通滤波器

通过以下公式计算过滤器:

函数[cL,cH]=getfilters(半径)
[x,y]=meshgrid(-128:127,-128:127);
z=sqrt(x.^2+y.^2);
cL=z<半径;
cH=~cL;
结束
因此,要过滤图像,我有:

img=imread('jpg图像')
ft=FFT换档(fft2(img));
[cL,cH]=getfilters(40);
l_ft=ft.*cL;
h_ft=ft.*cH;
低_滤波_图像=ifft2(ifftshift(l_ft),“对称”);
高滤波图像=ifft2(ifftshift(h_ft),“对称”);
要显示过滤后的傅里叶逆变换,请执行以下操作:

low_f=uint8(abs(low_filtered_image));
高_f=uint8(abs(高_滤波图像));
图,imshow(低华氏度);图,imshow(高f);
这是输出:


如果此代码错误,我应该如何修复它?

为什么您认为此代码错误?这似乎是正确的低通和高通图像。对于高通图像的显示,您可能希望拉伸图像,以便同时显示负值(而不是绝对值)。@CrisLuengo感谢您的检查。拉伸图像是一个很好的观点。