hough变换

原型

cv2.HoughLines()dst:   输出图像. 它应该是个灰度图 (但事实上是个二值化图)lines: 储存着检测到的直线的参数对 (r,\theta) 的容器rho : 参数极径 r 以像素值为单位的分辨率. 我们使用 1 像素.theta: 参数极角 \theta 以弧度为单位的分辨率. 我们使用 1度 (即CV_PI/180)threshold:    设置阈值: 一条直线所需最少的的曲线交点srn and stn:  参数默认为0cv2.HoughLinesP(dst, lines, 1, CV_PI/180, 50, 50, 10 )dst:    输出图像. 它应该是个灰度图 (但事实上是个二值化图)lines:  储存着检测到的直线的参数对 (x_{start}, y_{start}, x_{end}, y_{end}) 的容器rho :   参数极径 r 以像素值为单位的分辨率. 我们使用 1 像素.theta:  参数极角 \theta 以弧度为单位的分辨率. 我们使用 1度 (即CV_PI/180)threshold:    设置阈值: 一条直线所需最少的的曲线交点。超过设定阈值才被检测出线段,值越大,基本上意味着检出的线段越长,检出的线段个数越少。minLinLength: 能组成一条直线的最少点的数量. 点数量不足的直线将被抛弃.maxLineGap:   能被认为在一条直线上的两点的最大距离。

代码

import cv2
import numpy as npimg = cv2.imread('./image/timg.jpg')
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)    # 灰度图像
blur = cv2.GaussianBlur(img_gray, (3, 3), 0)        # 高斯滤波
edges = cv2.Canny(blur, 50, 150)                    # canny算子处理图片#hough transform
# 调节参数: 线最少点数 + 线最大点间隔
lines = cv2.HoughLinesP(edges, 1, np.pi/180,30, minLineLength=20, maxLineGap=5)
lines1 = lines[:,0,:]#提取为二维
for x1,y1,x2,y2 in lines1[:]:cv2.line(img, (x1,y1), (x2,y2), (0,0,255),2)    # 画线cv2.imshow('canny_process', edges)
cv2.imshow('hough_image', img)
cv2.imwrite('./image/hough_image.jpg',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

主要调节参数minilineLength、maxLinGaP

结果

原图:

hough变换直线检测:

【图像处理】hough变换_检测直线相关推荐

  1. 【车道线识别】基于matlab hough变换道路检测直线检测【含Matlab源码 2074期】

    ⛄一.Hough变换图片车道线检测简介 1 引言 随着人们生活水平的提高, 科技的不断进步, 智能驾驶技术逐渐受到了研究者们的广泛研究和关注.先进驾驶辅助系统 (Advanced Driver Ass ...

  2. Hough Transform 霍夫变换检测直线

    Hough Transform 霍夫变换检测直线 从理论到代码,再从代码到理论 (1)理论之通俗理解: 1.在图像中检测直线的问题,其实质是找到构成直线的所有的像素点.那么问题就是从找到直线,变成找到 ...

  3. hough变换连接边缘matlab,matlab图像处理hough变换程序执行问题

    matlab图像处理hough变换程序执行问题0 pxkd82013.04.23浏览184次分享举报 程序如下: I= imread('D:\MATLAB7\fenkuai.bmp','bmp');% ...

  4. matlab哈夫点线对偶运算,数字图像处理—图像分割—哈夫(Hough)变换及哈夫变换原理—检测直线...

    1.检测直线 n个点在一条直线上,连续的满足直线方程:同样,离散的也满足直线方程. 直线解决方法:先确定所有有任意2点决定的直线(需约 次运算以确定n(n - 1)/ 2条线).在找出接近具体直线的点 ...

  5. Hough变换原始形式-直线检测

    1.直角坐标系与极坐标系中的直线表示 1.1 直角坐标系与极坐标系 中的点的表示及它们之间相互关系 极坐标系(polar coordinates)是指在平面内由极点O.极轴L和极径r组成的坐标系,下图 ...

  6. MATLAB--数字图像处理 Hough变换

    前言 Hough变换是1962年由Hough提出来的,用于检测图像中直线.圆.抛物线.椭圆等形状能够用一定函数关系描述的曲线. 在这里我们重点研究的是利用Hough变换检测图中的直线. Hough变换 ...

  7. 直线检测之Hough变换(霍夫变换)

    霍夫变换,英文名称Hough Transform,作用是用来检测图像中的直线或者圆等几何图形的. 给定一张图像中的n个点,假设我们希望找到这些点中一个位于直线上的点集,一种可行的解决方法是,先找到所有 ...

  8. hough变换是如何检测出直线和圆的

    (I)直线篇 1 直线是如何表示的? 对于平面中的一条直线,在笛卡尔坐标系中,常见的有点斜式,两点式两种表示方法.然而在hough变换中,考虑的是另外一种表示方式:使用(r,theta)来表示一条直线 ...

  9. MATLAB中hough反变换,matlab中hough变换

    hough 变换提取直线(Matlab 实现) Hough 变换提取直线一.实验目标实现用 Hough 变换检测直线的算法二.实验内容 1.读入图像选取有较多直线及部分曲线以作对比的...... j= ...

  10. hough变换检测圆周_一文解读经典霍夫变换(Hough Transform)

    引言 本文讲述霍夫变换的一些内容,并加入一些理解性东西,参考了部分博客等相关性内容.希望能对霍夫变换有所了解,也希望看到的人如果发现错误及时帮忙纠正.博主水平有限,还望赐教. 历史和简介 历史 霍夫变 ...

最新文章

  1. Html编辑器kindsoft
  2. Android改变移动网络ip地址,Android之获取移动网络ip
  3. 数据结构算法(二)_算法基础之前传(递归、时间复杂度、空间复杂度、二分查找)...
  4. Obj文件和Bin文件
  5. Ⅰ:zookeeper的单机安装 - 详细教程
  6. 商业游戏美术成本已超1000万,研发门槛连续飙升,CP砸不起怎么办?
  7. 深度解析Java8 – AbstractQueuedSynchronizer的实现分析(下)
  8. java中变量运算细节 (2)
  9. 贝索斯的蓝色起源被21名员工投诉
  10. LeetCode 5381. 查询带键的排列
  11. Atitit 常见面试问题回答法 原则与细则 目录 1.1. 1、工作多久了?为什么离职? 1 1.2. 、自我评价 1 1.3. 问你有什么缺点 2 1.4. 4、理想薪资 2 1.5. 职业规
  12. GlusterFS简单环境部署
  13. WEB测试环境搭建和测试方法大全
  14. Onvif协议学习:5、设备搜索
  15. win10下网易云网络异常问题解决办法
  16. thinkphp mysql order_ThinkPHP中order()使用方法详解
  17. python开源报表工具_12个最好的开源报表工具
  18. 听歌识曲C++程序说明
  19. 关于Linux备份文件和应用的几个命令:tar和cp
  20. 电驴连接服务器显示无响应,请问使用电驴时,服务器无响应,怎么解决?

热门文章

  1. 2月26 ubuntu系统备份还原到相同电脑、另一台电脑
  2. adboost,随机森林,gbdt,xgboost,lightgbm区别
  3. cpp存储类型说明符(storage class specifier)
  4. 局部线性嵌入(LLE,Locally Linear Embedding)
  5. Iphone 清空联系人
  6. 多线程中使用CheckForIllegalCrossThreadCalls = false访问窗口
  7. Linux系统Web网站目录和文件安全权限设置
  8. 在Ubuntu上使用apt-get安装MySQL+安全优化
  9. Starling滤镜合集2(新增7种滤镜)
  10. TP-link路由器设置界面展示