img: 待检测的图像。

threshold: 阈值,可先项,默认为10

line_length: 检测的最短线条长度,默认为50

line_gap: 线条间的最大间隙。增大这个值可以合并破碎的线条。默认为10

返回:

lines: 线条列表, 格式如((x0, y0), (x1, y0)),标明开始点和结束点。

下面,我们用canny算子提取边缘,然后检测哪些边缘是直线?

import skimage.transform as st
import matplotlib.pyplot as plt
from skimage import data,feature#使用Probabilistic Hough Transform.
image = data.camera()
edges = feature.canny(image, sigma=2, low_threshold=1, high_threshold=25)
lines = st.probabilistic_hough_line(edges, threshold=10, line_length=5,line_gap=3)# 创建显示窗口.
fig, (ax0, ax1, ax2) = plt.subplots(1, 3, figsize=(16, 6))
plt.tight_layout()#显示原图像
ax0.imshow(image, plt.cm.gray)
ax0.set_title('Input image')
ax0.set_axis_off()#显示canny边缘
ax1.imshow(edges, plt.cm.gray)
ax1.set_title('Canny edges')
ax1.set_axis_off()#用plot绘制出所有的直线
ax2.imshow(edges * 0)
for line in lines:p0, p1 = lineax2.plot((p0[0], p1[0]), (p0[1], p1[1]))
row2, col2 = image.shape
ax2.axis((0, col2, row2, 0))
ax2.set_title('Probabilistic Hough')
ax2.set_axis_off()
plt.show()

转载于:https://www.cnblogs.com/byteHuang/p/6916996.html

Python-Anaconda练习candy算子用于边缘提取,再用hough变换检测直线边缘相关推荐

  1. python 图像变化检测_python hough变换检测直线的实现方法

    1 原理 2 检测步骤 将参数空间(ρ,θ) 量化成m*n(m为ρ的等份数,n为θ的等份数)个单元,并设置累加器矩阵,初始值为0: 对图像边界上的每一个点(x,y)带入ρ=xcosθ+ysinθ,求得 ...

  2. python霍夫变换检测直线_OpenCV-Python教程(9、使用霍夫变换检测直线)

    相比C++而言,Python适合做原型.本系列的文章介绍如何在Python中用OpenCV图形库,以及与C++调用相应OpenCV函数的不同之处.这篇文章介绍在Python中使用OpenCV的霍夫变换 ...

  3. python 检测直线 交点_OpenCV-Python教程(9、使用霍夫变换检测直线)

    相比C++而言,Python适合做原型.本系列的文章介绍如何在Python中用OpenCV图形库,以及与C++调用相应OpenCV函数的不同之处.这篇文章介绍在Python中使用OpenCV的霍夫变换 ...

  4. 【Python+OpenCV】基于Harris角点的边缘提取以及矩形四角点检测

    目录 开始之前必须要说的一些事 一.参考文章 二.实验目标 三.局限性声明 开始说正事了,所以标题一定要比第一个一级标题长 一.思路 (一)基于Harris角点检测[本文思路] (二)基于Hough变 ...

  5. 点、线和边缘检测 个人笔记(含Sobel和Laplace等算子、Marr-Hildreth和Canny实现及Hough变换)

    文章目录 1. 前言 2. 使用OpenCV 3 处理图像 笔记 2.1 傅里叶变换及相关.卷积 2.2 个人总结 2.3 相关链接 3. 点.线和边缘检测 笔记 3.1 背景知识 3.2 孤立点的检 ...

  6. anaconda的python使用教程-Python,Anaconda简介安装使用教程

    ① 首先,自己也是闲来无趣刚刚开始接触Python这门语言,收集了一些关于一些初级的学前准备资料仅供大家参考 Python简介: Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚 ...

  7. python anaconda和pycharm_Pycharm下 Anaconda和Conda的使用

    NBA Web网站开发的基本框架已经搭好了,但是只有框架,并没有数据内容. 所以我去网上下载了一份1950年开始的球员数据,用于填充内容. 同时,想做一些数据的分析及可视化,所以最近开始看点数据分析的 ...

  8. python anaconda和pycharm_Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项...

    原博文 2020-04-03 09:20 − Python .Pycharm.Anaconda三者的区别与联系.安装过程及注意事项 这篇文章主要介绍了Python,Pycharm,Anaconda三者 ...

  9. Macbook air m1安装python/anaconda全过程

    Macbook air m1安装python/anaconda全过程 1. 起因 2. 安装 3. 结束 1. 起因 M1芯片的macbook是arm架构,直接装普通x86系统上的anaconda感觉 ...

最新文章

  1. linux c 实现 http get post 请求
  2. 二叉树的前中后序递归和非递归遍历操作【代码】
  3. mysql natural join用法_MySQL NATURAL JOIN
  4. 服务器图片(绝对地址) 客户端显示问题
  5. [20190805]在小程序中使用npm包
  6. mysql连接主备_mysql主备配置方法
  7. URAL 1013 K-based Numbers. Version 3
  8. 利用 CocoaPods 服务器中的一个 RCE 漏洞,投毒数百万款app
  9. iOS import,include和class的区别
  10. 录ppt的时候录光标_光标的使用.ppt
  11. python 串口实例_串口编程(python串口通信实例)
  12. android手机网络Ping测试
  13. MySQL多个筛选条件_mysql一对多关联查询的时候筛选条件
  14. 2021GKCTF Misc excel骚操作--详解
  15. (转载)0x0F1AFD76 (libcocos2d.dll) (Plane.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x00000018 时发生访问冲突。
  16. 全国企业信用信息 网站
  17. Java中抽象类的概述及其详解(什么是抽象类?为什么要使用抽象类?抽象类的特点?)
  18. DC(Design Compiler)使用说明
  19. 一个基于 Vue3 Vite 的相册应用
  20. 快排算法的针对重复键值的优化

热门文章

  1. 【script】python 使用json模块实现字符串与字典的相互转换
  2. c++ 实现录音并且指定到文件_2020年的办公装备新选择,搜狗AI录音笔E1深度评测...
  3. Hibernate多表查询重新封装实体
  4. linux xmind无法运行,linux安装xmind的方法步骤
  5. python在windows配置_Python在windows平台的多版本配置
  6. spring定时每天早上八点_SpringBoot 如何实现并发定时任务?
  7. 在easyui中如何使用ajax请求数据,Ajax 中正常使用jquery-easyui (转)
  8. [CTF]思维导向图
  9. Python人工智能之路 - 第一篇 : 你得会点儿Python基础
  10. R语言-单一变量分析