matlab提取直线边界,hough变换提取直线(Matlab实现)

hough变换提取直线(Matlab实现)

Hough变换提取直线

一、实验目标

实现用Hough变换检测直线的算法

二、实验内容

1、读入图像

选取有较多直线及部分曲线以作对比的图像作为实验素材,这里我们必须使用彩色图像(有些瞧似灰度图像的实际属性也就是彩色图像),原因下面有详解。

2、检测图像边缘

如果一个像素落在图像中某一个物体的边界上,那么它的邻域将成为一个灰度级变化的带。对这种变化最有用的两个特征就是灰度的变化率与方向,她们分别用梯度向量的幅度与方向来表示。

边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,通常也包括方向的确定。有若干种算子可以使用,大多数就是基于方向导数掩模求卷积的方法。如Roberts算子,Sobel算子 ,Prewitt算子,Log算子等。这里采用Log算子提取图像边缘,再用均值滤波去除边缘图像噪声。

3、实现Houg变换,检测出图像中的直线

Hough变换就是一种利用图像的全局特征将特定形状的边缘连接起来,形成连续平滑边缘的一种方法。它通过将源图像上的点影射到用于累加的参数空间,实现对已知解析式曲线的识别。

这里先对边缘图像进行二值化处理,然后再用hough变换提取直线,最后用红色标记之。因为处理过程中需使用灰度图像,但最后无法给灰度图像赋颜色(会出错或效果不好),只能给彩色图像赋颜色,故最初输入时请使用彩色图像。

4、Matlab代码如下:

f=imread('3、png');%读入彩色图像,注意不能使用灰度图像

o=f; %保留彩色原图

f=rgb2gray(f);%将彩色图像转换为灰度图像,

f=im2double(f);

figure();

subplot(2,2,1);imshow(o);title('原图');

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值