1,霍夫变换检测直线

%霍夫变换检测直线
clc,clear,close all;
Image = rgb2gray(imread('rect.jpg'));
bw = edge(Image,'canny');%canny算子边缘检测得二值边缘图像
figure,imshow(bw);
[h,t,r] = hough(bw,'RhoResolution',0.5,'ThetaResolution',0.5);%Hough变换
figure,imshow(imadjust(mat2gray(h)),'XData',t,'YData',r,'InitialMagnification','fit');%显示Hough变换矩阵
xlabel('\theta'),ylabel('\rho');
axis on,axis normal,hold on;
P = houghpeaks(h,2);
x = t(P(:,2));y = r(P(:,1));
plot(x,y,'s','color','r');%获取并标出参数平面上的峰值点
lines = houghlines(bw,t,r,P,'FillGap',5,'Minlength',7);%检测图像中的直线段
figure,imshow(Image);
hold on;
max_len = 0;
for i =1:length(lines)xy = [lines(i).point1;lines(i).point2];plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','g');%用绿色标记直线段plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','y');plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','r');%标注端点end

结果:

2,霍夫变换检测圆

%霍夫变换检测圆
clear,clc,close all;
Image = imread('coin.jpg');
[centers,radii,metric] = imfindcircles(Image,[15,100]);%检测半径在[15 100]之间的圆
subplot(121),imshow(Image),title('半径符合标准的圆');
viscircles(centers,radii,'Color','b');%用蓝色的线绘制所有的圆
centersStrong5 = centers(1:5,:);%获得圆度最大的5个圆圆心
radiiStrong5 = radii(1:5);
metricStrong5 = metric(1:5);
subplot(122),imshow(Image),title('圆度最大的五个圆');
viscircles(centersStrong5,radiiStrong5,'Color','g','LineStyle',':');

结果:

霍夫变换提取线段与圆相关推荐

  1. OpenCV(十八)霍夫变换(直线、线段与圆检测)

    目录 一.基础理论 1.作用: 2.定义 3.原理 二.直线检测 1.基础理论 1.原理 2.过程 2.HoughLines函数(直线检测) 3.HoughLinesP函数(线段检测) 三.圆检测 1 ...

  2. halcon gen_region_hline 绘制霍夫变换提取直线

    目录 gen_region_hline(算子) 描述 gen_region_hline(算子) gen_region_hline - 将霍夫变换提取直线以普通形式描述的输入行存储为区域. gen_re ...

  3. 15. 计算几何:圆的表示 点、直线、线段与圆的关系

    文章目录 圆的表示 点.直线.线段与圆的关系 1. 点和圆的关系 2. 直线和圆的关系 3. 线段和圆的关系 4. 直线和圆的交点 圆的表示 struct Circle{Point c; //圆心do ...

  4. 计算几何——直线、线段和圆的交点

    汇总篇:计算几何汇总 首先,求出圆心O在直线AB上的投影点E 然后求出AB的方向向量e=AB/|AB| 令EC=ED=base base = sqrt(r^2-OE^2) EC = -base *e ...

  5. (六)基于霍夫变换的直线和圆检测

    1.Hough Transform https://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm 霍夫变换于1962年由Paul Hough首次提出,后于197 ...

  6. opencv 检测直线、线段、圆、矩形

    转自:http://blog.csdn.net/byxdaz/archive/2009/12/01/4912136.aspx 检测直线:cvHoughLines,cvHoughLines2 检测圆:c ...

  7. opencv 霍夫变换检测直线和圆

    霍夫变换 霍夫变换原理及python实现 opencv 霍夫直线变换 OpenCV中用cv.HoughLines()在二值图上实现霍夫变换,函数返回的是一组直线的(r,θ)数据: 函数中: 参数1:要 ...

  8. cad引出线段lisp_给定起终点,如何提取线段连线关系表 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    (defun c:tt (/ l i s p e r a d o ) (setq r 2.0 ) : 设定字体比列参数 1:2 (if (and (setq e (car (entsel " ...

  9. arcpy提取线段/道路起点,终点

    # encoding: utf-8 import arcpy data=r"D:\删减后的道路网\delbjroad.shp" ls=[] strout="" ...

最新文章

  1. 转:[大数据竞赛]夺冠感言:走进业务,提升对世界的认知能力
  2. pandas 官方API
  3. 简要说明建设城市大脑三条关键标准规范
  4. 美丽新世界:这七个原因将让未来更美好
  5. 【js】v-for 的一些用法 :class {{index}}
  6. Mac系统下安装PIL
  7. git version是什么软件_Deepin 15.11 安装 ZoneMinder 视频监控软件
  8. YII2.0之博客实战
  9. 报错,npm ERR! code ENOLOCAL
  10. Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for...
  11. 微信群有人发广告?用 Python 写自动化机器人消灭他!
  12. ubuntu linux 启用root用户登录
  13. HTML5小游戏代码大全
  14. WIN7运行命令大全
  15. t9.php,TPHP框架
  16. matlab 图像分割-自定义函数T_SGM
  17. 大屏做成这样,领导不重视你都难!
  18. Oracle配置本地网络服务名
  19. 初读《设计模式之禅》
  20. 安卓手机数据备份与恢复方法汇总和操作详解

热门文章

  1. js中设置元素class的三种方法小结
  2. 工具栏对象GUI Status 与GUI Title
  3. Debain/ArchLinux/Gentoo 等将合并为超级Linux
  4. 关于网络唤醒远程开机的方法
  5. ArcServer for Java 讲座
  6. ajax工具、框架和库
  7. Spark的RDD 文件读取与保存
  8. matlab.10折交叉验证
  9. call(),apply()和bind()的详解使用:
  10. 骑行318、 2016.7.8