边缘检测与Hough变换
实验目的:写一段代码实现一幅图像,其中分为以下两个步骤
1.使用Matlab中的canny算子进行边缘检测,可以让使用者交互式的输入不同
的Sigma的值实现边缘检测。
2.运用Hough变换来找到最突出的边缘,在图像中找到并画出最长的直线。
实验原理:
canny算子边缘检测的基本原理是:采用二维高斯函数的任一方向上的一阶方向
导数为噪声滤波器,通过与图像f(x,y)卷积进行滤波,然后对滤波后的图像
寻找图像梯度的局部极大值,以确定图像边缘。
Canny边缘检测算子是一种最优边缘检测算子。其实现步骤如下:
1)用高斯滤波器平滑图像
2)计算滤波后图像梯度的幅值和方向
3)对梯度幅值应用非极大值抑制,其过程为找出图像梯度中的局部极大值点,把其他非局部极大值置零,以得到细化的边缘;
4)再用双阈值算法检测和连接边缘;
使用canny算子的edge函数调用格式为
BW=edge(I,'canny');
BW=edge(I,'canny',thresh,sigma);
BW=edge(I,'canny',thresh);
[BW,threshold]=edge(I,'canny',…);
2.Hough变换时最常用的直线提取方法,它的基本思想是:将直线上每一个
数据点变换为参数平面中的一条直线或曲线,利用共线的数据点对应的