hough变换_matlab-哈夫变换识别图像(棋盘)直线/直线检测

代码实现:

clear;close all;img = imread('C:甥敳獲lenovoDesktop1(1).bmp');figure(1),subplot(1,2,1);imshow(img);  title('原始图像'); img=rgb2gray(img);  % 灰度图像subplot(1,2,2);imshow(img);  title('灰度图像'); thresh=[0.01,0.10];  %敏感度阈值sigma=3;%定义高斯参数  f = edge(double(img),'canny',thresh,sigma);  %边缘检测figure(2),imshow(f);  title('canny 边缘检测');  % 检测函数;[H, theta, rho]= hough(f,'Theta', 20:0.1:75);  %0-1% H->累计数组 , thetaH:对应的θ,实际上H的大小就是Rho×Theta% Rho:H对应的ρpeak=houghpeaks(H,1);  %峰值提取hold on  %保留当前的图和特定的坐标轴属性,以便后续的绘图命令添加到现有的图表。%得到线段信息lines=houghlines(f,theta,rho,peak);  figure(3);imshow(f,[]);title('霍夫变换检测结果');hold on  ;for k=1:length(lines)      xy=[lines(k).point1;lines(k).point2];      plot(xy(:,1),xy(:,2),'LineWidth',4,'Color',[.6 .6 .6]);  end

运行结果:

a2f771e6d14c11c66e915dca0bf02e08.png

在这里插入图片描述

3c61a537ab994f9fc49c74b7868ef7ea.png

在这里插入图片描述

3177151eae3e183946b96bbdd7fd9bbf.png

在这里插入图片描述

致谢:本篇博客参考以下大佬的内容;

Hough直线检测原理及Matlab函数详解Matlab实现——霍夫变换直线检测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值