本科课程实验报告
课程名称数字图像处理
实验名称频域滤波和图像分割授课学期2023学年至2024学年
第二学期
学院计算机科学与工程学院/软件学院
专业数据科学与大数据技术
学号202112304032
姓名宁天忠
交稿日期2023/12/22
一、实验目的:
1.熟悉空间滤波与频域滤波的对应关系,熟悉频域滤波的基本流程。
2.熟悉霍夫变换以及区域生长算法原理。
3.掌握相关函数的使用。
实验一、阅读并调通相关代码,观察实验结果。
一、频域滤波
1.fft2、abs、fftshift函数
实验结果:
该实验展示了如何使用FFT对图像进行傅里叶变换,得到图像在频域的表示。fftshift函数的使用将频谱中的低频分量移到了中央,
这有助于观察图像的低频和高频成分。通过对幅度谱进行对比度拉伸,可以增强图像的对比度。(-1)^(x+y)f(x,y)的频谱演示了对图像进行一些特殊处理的效果。相位谱提供了图像中不同频率分量的相位信息。
2、空间滤波器和频域滤波器
实验结果:
代码展示了如何使用FFT对图像进行傅里叶变换,以及如何将频谱进行中心化。演示了拉普拉斯算子在频域的表示,以及如何通过频
域滤波器对图像进行滤波。通过比较空域和频域滤波的结果,可以看到它们之间的相似性,说明频域滤波是通过空域滤波器的傅里叶变换来实现的。通过计算空域和频域滤波结果之间的差异,可以量化它们之间的相似性或差异性。
二、图像分割
1、霍夫线检测
实验结果:
该实验演示了如何使用MATLAB的hough函数对图像进行霍夫变换。霍夫变换用于检测图像中直线的存在。霍夫变换矩阵H显示了图像中每个点在参数空间(极径rho和角度theta)上的投影。第三个子图通过显示参数空间中的霍夫变换矩阵,以及在theta和rho上的坐标轴,使我们能够直观地看到图像中的直线在参数空间中的表示。
2、houghlines函数
实验结果:
该实验使用Sobel、LoG和Canny算子进行图像边缘检测。使用MATLAB的hough函数进行霍夫直线变换,得到直线在参数空间中的表示。通过显示霍夫变换矩阵,可以观察到在参数空间中的直线投影。使用houghpeaks函数找到霍夫变换矩阵中的峰值,这些峰值对应于图像中的直线。使用houghlines函数从霍夫变换中提取直线,
并在原始图像上显示这些直线。
3、区域生长法分割
实验结果:
该实验使用区域生长方法对图像进行分割。区域生长是一种基于像素之间相似性的分割方法。使用了种子点、阈值等参数来控制区域生长的过程。通过子图和图像窗口的方式,展示了图像、种子点图像、阈值测试通过的像素图像以及分割后的图像。绘制了原始图像的直方图,可以用于观察图像的像素值分布情况。
实验二、改变上述代码实验参数或函数参数,观察实验结果
1、在进行霍夫变换前,选择不同的边缘检测算子:sobel,canny或者log
使用sobel算子使用log算子
使用canny算子
实验分析:
通过观察不同的实验结果,我们可以发现使用sobel算子的边缘检查效果相对于log算子和canny算子要差一点。
2、选择不同数量的霍夫峰值
数量为5时数量为10时
数量为15时数量为20时
实验分析:
通过使用不同数量的霍夫峰值,我们可以发现它们的边缘检查效果基本一致,从图中可以发现数量越大,检测到了更多的直线。
3、在区域生长算法中,选择不同的种子、阈值
(1)种子为1,阈值为0.26
(2)种子为0.8,阈值为0.1
(3)种子为0.5,阈值为0.1
(4)种子为1,阈值为0.4
实验分析:
种子的选择会影响分割的起始点,可能导致不同的分割结果。如果种子选择不当,可能会导致过度生长或者过度收缩的现象,阈值的选择直接影响区域的生长速度和范围。较大的阈值可能导致区域生长得更快,但可能也