matlab中傅里叶变换提取图像的高频低频值
时间: 2023-11-04 07:09:06 浏览: 306
在Matlab中,可以使用傅里叶变换(`fft2`函数)来提取图像的频域信息。具体步骤如下:
1. 读入图像并转换为灰度图像。
```matlab
img = imread('image.jpg');
gray_img = rgb2gray(img);
```
2. 对灰度图像进行傅里叶变换。
```matlab
fft_img = fft2(gray_img);
```
3. 将零频分量移动到频谱的中心。
```matlab
fft_img_shifted = fftshift(fft_img);
```
4. 取出频谱的实部和虚部。
```matlab
real_part = real(fft_img_shifted);
imag_part = imag(fft_img_shifted);
```
5. 计算频率域的幅值谱。
```matlab
amplitude_spectrum = log(1 + abs(fft_img_shifted));
```
6. 根据幅值谱的特点,可以将频率域分为高频和低频两部分。
```matlab
[h, w] = size(amplitude_spectrum);
center_h = floor(h/2);
center_w = floor(w/2);
% 提取高频部分
high_frequency = amplitude_spectrum(1:center_h-1, center_w+1:end);
% 提取低频部分
low_frequency = amplitude_spectrum(center_h+1:end, center_w+1:end);
```
这样,就可以通过傅里叶变换提取图像的高频和低频信息了。
阅读全文