空间滤波代码
时间: 2023-07-03 22:16:29 浏览: 38
下面是一个简单的空间滤波代码,可以进行均值滤波、高斯滤波和中值滤波:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg')
# 均值滤波
blur = cv2.blur(img, (5, 5))
# 高斯滤波
gauss = cv2.GaussianBlur(img, (5, 5), 0)
# 中值滤波
median = cv2.medianBlur(img, 5)
# 显示结果
cv2.imshow('original', img)
cv2.imshow('blur', blur)
cv2.imshow('gauss', gauss)
cv2.imshow('median', median)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`cv2.blur()`表示均值滤波,`cv2.GaussianBlur()`表示高斯滤波,`cv2.medianBlur()`表示中值滤波。在这里,均值滤波和高斯滤波的核大小都是5x5,中值滤波的核大小是5。可以根据需要调整这些参数。
相关问题
matlab空间滤波函数代码
Matlab中有多种空间滤波函数,以下是其中两种的代码示例:
1. 中值滤波:可以使用medfilt2函数实现中值滤波,语法如下:
```
B = medfilt2(A)
```
其中,A为原始图像,B为经过中值滤波后的图像。
2. 高斯滤波:可以使用fspecial函数生成高斯滤波器,然后使用imfilter函数进行滤波,语法如下:
```
H = fspecial('gaussian', hsize, sigma)
B = imfilter(A, H)
```
其中,hsize为滤波器大小,sigma为高斯函数的标准差,A为原始图像,B为经过高斯滤波后的图像。
以下是一个示例代码,演示如何使用中值滤波和高斯滤波对图像进行滤波:
```
% 读取原始图像
I = imread('lena.jpg');
figure, imshow(I), title('原始图像')
% 中值滤波
I_med = medfilt2(I);
figure, imshow(I_med), title('中值滤波')
% 高斯滤波
hsize = [5 5];
sigma = 2;
H = fspecial('gaussian', hsize, sigma);
I_gauss = imfilter(I, H);
figure, imshow(I_gauss), title('高斯滤波')
```
运行代码后,将显示原始图像、中值滤波后的图像和高斯滤波后的图像。
matlab图像处理空间滤波和频域滤波代码
由于空间滤波和频域滤波的具体实现方式和算法多种多样,因此无法提供一份通用的代码。以下是一些常见的图像处理滤波算法的 MATLAB 代码示例:
1. 均值滤波
空间滤波:
```matlab
function output = meanFilter(input, maskSize)
[m, n] = size(input);
output = zeros(m, n);
mask = ones(maskSize) / maskSize^2;
padSize = floor(maskSize / 2);
padded = padarray(input, [padSize padSize], 'replicate');
for i = 1:m
for j = 1:n
window = padded(i:i+maskSize-1, j:j+maskSize-1);
output(i, j) = sum(sum(window .* mask));
end
end
end
```
频域滤波:
```matlab
function output = meanFilterFreq(input, maskSize)
[m, n] = size(input);
output = zeros(m, n);
mask = ones(maskSize) / maskSize^2;
padSize = floor(maskSize / 2);
padded = padarray(input, [padSize padSize], 'replicate');
paddedFreq = fft2(padded);
maskFreq = fft2(mask, m+padSize*2, n+padSize*2);
outputFreq = paddedFreq .* maskFreq;
output = real(ifft2(outputFreq));
output = output(padSize+1:end-padSize, padSize+1:end-padSize);
end
```
2. 中值滤波
空间滤波:
```matlab
function output = medianFilter(input, maskSize)
[m, n] = size(input);
output = zeros(m, n);
padSize = floor(maskSize / 2);
padded = padarray(input, [padSize padSize], 'replicate');
for i = 1:m
for j = 1:n
window = padded(i:i+maskSize-1, j:j+maskSize-1);
output(i, j) = median(window(:));
end
end
end
```
3. 高斯滤波
空间滤波:
```matlab
function output = gaussianFilter(input, sigma)
[m, n] = size(input);
output = zeros(m, n);
maskSize = ceil(sigma * 6);
if mod(maskSize, 2) == 0
maskSize = maskSize + 1;
end
padSize = floor(maskSize / 2);
mask = fspecial('gaussian', maskSize, sigma);
padded = padarray(input, [padSize padSize], 'replicate');
for i = 1:m
for j = 1:n
window = padded(i:i+maskSize-1, j:j+maskSize-1);
output(i, j) = sum(sum(window .* mask));
end
end
end
```
频域滤波:
```matlab
function output = gaussianFilterFreq(input, sigma)
[m, n] = size(input);
output = zeros(m, n);
maskSize = ceil(sigma * 6);
if mod(maskSize, 2) == 0
maskSize = maskSize + 1;
end
padSize = floor(maskSize / 2);
mask = fspecial('gaussian', maskSize, sigma);
padded = padarray(input, [padSize padSize], 'replicate');
paddedFreq = fft2(padded);
maskFreq = fft2(mask, m+padSize*2, n+padSize*2);
outputFreq = paddedFreq .* maskFreq;
output = real(ifft2(outputFreq));
output = output(padSize+1:end-padSize, padSize+1:end-padSize);
end
```
相关推荐
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](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)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)