2744557306 发表于 2023-12-9 17:16

MATLAB实现图像去噪 滤波 锐化 边缘检测

这段代码主要展示了图像处理的一系列步骤,包括图像读取、添加噪声、去噪、图像锐化、直方图均衡化以及边缘检测。

1.读取图像:   I=imread('1.jpg');

   try

       I=rgb2gray(I);

   end这里首先读取名为 "1.jpg" 的图像文件。然后,使用 rgb2gray 函数将彩色图像转换为灰度图像,但由于可能出现错误(比如图像本身就是灰度图像),用了 try 和 end 来捕获并处理这个潜在的错误。

2.添加椒盐噪声:   I=imnoise(I,'salt & pepper',0.04);使用 imnoise 函数向图像中添加密度为 0.04 的椒盐噪声。

3.显示原始图像:   figure

   imshow(I)

   title('原图')通过 imshow 函数显示添加噪声后的原始图像。

4.图像去噪:   I=medfilt2(I,);使用 medfilt2 函数对受椒盐噪声干扰的图像进行中值滤波去噪处理。

5.图像锐化:  =size(I);

   f=double(I);

   g=fft2(f);

   g=fftshift(g);

   n=2;

   D0=3;

   for i=1:M

       for j=1:N

           % 省略了对频域信号进行巴特沃斯滤波的操作

           % 这部分代码主要是在频域进行滤波处理以实现图像的锐化

       end

   end

   result=ifftshift(output);

   I=ifft2(result);

   I=uint8(real(I));这一部分通过傅立叶变换、频域处理(采用了巴特沃斯滤波器)以及反变换实现图像的锐化操作。

6.直方图均衡化:   I=histeq(I);使用 histeq 函数对图像进行直方图均衡化处理,以增强图像的对比度和亮度分布。

7.边缘检测:   I1=edge(I,'prewitt');

   I2=edge(I,'roberts');

   I3=edge(I,'sobel');使用不同的边缘检测算子(Prewitt、Roberts、Sobel)对经过处理后的图像进行边缘检测,产生三幅不同的边缘强度图像。
这段代码展示了图像处理领域中常见的一些基本操作,包括噪声处理、滤波、频域处理、直方图均衡化以及边缘检测。



页: [1]
查看完整版本: MATLAB实现图像去噪 滤波 锐化 边缘检测