用MATLA B写高斯低通和高斯高通代码
时间: 2024-05-01 14:19:48 浏览: 13
高斯低通滤波器代码:
```matlab
function imOut = gaussianLowPassFilter(imIn, sigma)
%获取图像大小
[M, N] = size(imIn);
%设置滤波器尺寸
H = zeros(M, N);
%计算滤波器中心坐标
centerM = floor(M/2) + 1;
centerN = floor(N/2) + 1;
%计算高斯低通滤波器
for i = 1:M
for j = 1:N
H(i,j) = exp(-((i-centerM)^2 + (j-centerN)^2)/(2*sigma^2));
end
end
%对滤波器进行归一化
H = H/sum(H(:));
%进行频域卷积
imOut = real(ifft2(fft2(imIn).*fft2(H)));
end
```
高斯高通滤波器代码:
```matlab
function imOut = gaussianHighPassFilter(imIn, sigma)
%获取图像大小
[M, N] = size(imIn);
%设置滤波器尺寸
H = zeros(M, N);
%计算滤波器中心坐标
centerM = floor(M/2) + 1;
centerN = floor(N/2) + 1;
%计算高斯高通滤波器
for i = 1:M
for j = 1:N
H(i,j) = 1 - exp(-((i-centerM)^2 + (j-centerN)^2)/(2*sigma^2));
end
end
%对滤波器进行归一化
H = H/sum(H(:));
%进行频域卷积
imOut = real(ifft2(fft2(imIn).*fft2(H)));
end
```
其中,imIn为输入图像,sigma为控制滤波器尺寸的参数,imOut为处理后的图像。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)