用matlab将一张大小为962*1026的图片使用截止频率为半径在50处的4阶巴特沃斯高通滤波器滤波
时间: 2024-05-15 16:16:47 浏览: 160
用matlab对一幅图像使用各类滤波器进行处理
以下是使用MATLAB进行该操作的代码:
```matlab
% 读取原始图片
img = imread('image.jpg');
% 将图片转换为灰度图像
gray_img = rgb2gray(img);
% 对灰度图像应用4阶巴特沃斯高通滤波器
cutoff = 50; % 截止频率
order = 4; % 阶数
[b, a] = butter(order, cutoff/(size(gray_img,1)/2), 'high'); % 高通滤波器系数
filtered_img = filter(b, a, double(gray_img)); % 滤波
% 将滤波后的图像转换为8位灰度图像
filtered_img = uint8(filtered_img);
% 显示原始图像和滤波后的图像
figure;
subplot(1,2,1);
imshow(gray_img);
title('Original Image');
subplot(1,2,2);
imshow(filtered_img);
title('Filtered Image');
```
该代码会读取名为“image.jpg”的图片,并将其转换为灰度图像。然后,它会使用MATLAB内置的`butter`函数来计算4阶巴特沃斯高通滤波器的系数,并将截止频率设置为50。接下来,它会应用滤波器来滤波灰度图像,并将结果转换为8位灰度图像。最后,它会显示原始图像和滤波后的图像。
阅读全文