做网站必须托管服务器吗武汉seo百度
一、前言
傅里叶变换是图像变换的一种常用方法,傅里叶变换在图像处理中扮演着核心角色,它通过将图像从空间域转换到频率域,获取图像的频率成分,因为有些特征在空间域很难处理,但在频率域比较容易处理。这一转换有助于分析图像中的高频(细节、边缘)和低频(平滑区域)信息,进而实现图像去噪、压缩、特征提取及图像增强等处理。通过修改频率域中的信息,可以针对性地优化图像质量,再经逆傅里叶变换回空间域,得到我们希望得到的处理后的图像。
傅里叶变换本身通常不直接用于边缘提取,因为它是一种频域分析工具,主要用于分析图像的频率成分。然而,傅里叶变换的变种——高通滤波或带通滤波,在图像处理中可以用来增强图像的边缘信息,因为边缘信息在图像中通常对应高频成分。下面,提供一个使用MATLAB进行图像边缘提取的示例,其中通过高通滤波和数学形态学来实现。这个示例将包括以下几个步骤:
1.读取图像
2.转换图像到频域(使用二维快速傅里叶变换FFT)
3.创建高通滤波器
4.应用高通滤波器,将滤波后的图像从频域转换回空间域(使用逆FFT)
5.数学形态学运算
6.显示结果
二、MATLAB程序代码
clear all; %清除所有变量
close all; %关闭所有图形窗口
clc; %清屏
imtool close all; %关闭图像工具箱
% 步骤 1: 读取图像
%img = imread('cameraman.tif'); % 读取图像
img = imread('coins.png'); % 读取图像
%img = imread('e:\fruit1.jpg'); % 读取RGB彩色图像
if size(img, 3) == 3
img = rgb2gray(img); % 如果图像是彩色的,则转换为灰度图像
end
% 步骤 2: 转换图像到频域
F = fft2(double(img));
Fshift = fftshift(F); % 将零频率分量移到频谱中心-即变换后的坐标原点移到窗口中心,因而围绕坐标中心是低频,向外是高频分量。
% 步骤 3: 创建一个高通滤波器
% 使用一个简单的圆形高通滤波器(依据实际情况可以选择不同的滤波器,如巴特沃斯高通滤波器)
[rows, cols] = size(Fshift);
%D0 = 10; % 滤波器的截止频率-依据实际情况可以调整-AI推荐值
D0 = 19; % 滤波器的截止频率-依据实际情况可以调整
%D0 = 30; % 滤波器的截止频率-依据实际情况可以调整
[x, y] = meshgrid(-cols/2:cols/2-1, -rows/2:rows/2-1);
D = sqrt(x.^2 + y.^2);
H = double(D > D0); % 生成高通滤波器
% 应用高通滤波器
Fshift_filtered = Fshift .* H;
% 步骤 4: 将滤波后的图像从频域转换回空间域
img_filtered = ifftshift(Fshift_filtered);
img_edge = ifft2(img_filtered);
img_edge = real(img_edge); % 取实部
img_edge = uint8(abs(img_edge)); % 转换为8位无符号整数
max(img_edge(:))
min(img_edge(:))
imtool(img_edge);
%% 步骤 5: 图像的二值化数学形态学处理
bw=im2bw(img_edge,graythresh(img_edge));
%bw=im2bw(img_edge,22/255);
bw=bwareaopen(bw,200);%移除小目标
bw_fill=imfill(bw,'holes');
figure,imshow(bw_fill);
SE=strel('disk',15);
img_edge_final=bwmorph(imopen(bw_fill,SE),'remove');
figure,imshow(img_edge_final);
%img_edge=imadjust(img_edge);
% 步骤 6: 显示结果
figure,
subplot(2,2,1),imshow(img), title('Original Image');
subplot(2,2,2), imshow(img_edge, []), title('Edge Image by High-Pass Filtering');
subplot(2,2,3), imhist(img_edge), title('Edge Image histgram');
subplot(2,2,4), imshow(img_edge_final), title('Edge Image by High-Pass Filtering and Mathematical Morphology');
-
三、主要运行结果
- 注:本文图像使用的是MATLAB自带的灰度图像coins.png,本程序也可以对彩色图像进行边缘处理,但滤波器可能需要依据实际情况进行设计。
- 如果大家觉得本文对大家学习和研究有帮助,请关注、收藏、点赞,谢谢大家!