- 浏览: 499089 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
# -*-encoding:utf-8-*- import pytesseract from PIL import Image from PIL import ImageFilter from PIL import ImageFont from PIL import ImageDraw import numpy as np from PIL import Image import cv2 import matplotlib.pyplot as plt def main(): # 使用霍夫变换识别出图像中的直线和圆 # 分别使用霍夫线变换和圆变换检测图像中的直线和圆 # OpenCV函数:cv2.HoughLines(), cv2.HoughLinesP(), cv2.HoughCircles() # =================================霍夫直线变换 # 1.加载图片,转为二值图 img = cv2.imread('test007.png') # img = cv2.imread('shapes.jpg') # drawing = np.zeros(img.shape[:], dtype=np.uint8) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray, 50, 150) # 2.霍夫直线变换 lines = cv2.HoughLines(edges, 0.8, np.pi / 180, 90) # 参数1:要检测的二值图(一般是阈值分割或边缘检测后的图) # 参数2:距离r的精度,值越大,考虑越多的线 # 参数3:角度θ的精度,值越小,考虑越多的线 # 参数4:累加数阈值,值越小,考虑越多的线 # 3.将检测的线画出来(注意是极坐标噢) drawing = np.zeros(img.shape[:], dtype=np.uint8) for line in lines: rho, theta = line[0] a = np.cos(theta) b = np.sin(theta) x0 = a * rho y0 = b * rho x1 = int(x0 + 1000 * (-b)) y1 = int(y0 + 1000 * (a)) x2 = int(x0 - 1000 * (-b)) y2 = int(y0 - 1000 * (a)) cv2.line(drawing, (x1, y1), (x2, y2), (0, 0, 255)) # =================================统计概率霍夫直线变换 # 前面的方法又称为标准霍夫变换,它会计算图像中的每一个点,计算量比较大,另外它得到的是整一条线(r和θ),并不知道原图中直线的端点。 # 所以提出了统计概率霍夫直线变换(Probabilistic Transform),是一种改进的霍夫变换: # 3.统计概率霍夫线变换 lines = cv2.HoughLinesP(edges, 0.8, np.pi /180, 50, minLineLength=20, maxLineGap=10) # 前面几个参数跟之前的一样,有两个可选参数: # minLineLength:最短长度阈值,比这个长度短的线会被排除 # maxLineGap:同一直线两点之间的最大距离 #得到的结果是起始坐标点 # 3.将检测的线画出来 drawing2 = np.zeros(img.shape[:], dtype=np.uint8) for line in lines: x1, y1, x2, y2 = line[0] cv2.line(drawing2, (x1, y1), (x2, y2), (0, 255, 0), 1, lineType=cv2.LINE_AA) # cv2.LINE_AA在之前绘图功能中讲解过,表示抗锯齿线型。 # =================================统计概率霍夫直线变换 # 圆是用(x_center, y_center, r)来表示 # 2.霍夫圆变换 circles = cv2.HoughCircles(edges, cv2.HOUGH_GRADIENT, 1, 20, param2=75) circles = np.int0(np.around(circles)) #取约数 print(circles) #[[[252 278 45]]] # 参数2:变换方法,一般使用霍夫梯度法,详情:HoughModes # 参数3:dp = 1:表示霍夫梯度法中累加器图像的分辨率与原图一致 # 参数4:两个不同圆圆心的最短距离 # 参数5:param2跟霍夫直线变换中的累加数阈值一样 # 将检测的圆画出来 drawing3 = np.zeros(img.shape[:], dtype=np.uint8) for i in circles[0, :]: cv2.circle(drawing3, (i[0], i[1]), i[2], (0, 255, 0), 2) # 画出外圆 cv2.circle(drawing3, (i[0], i[1]), 2, (0, 0, 255), 3) # 画出圆心 # cv2.imshow('equalization', equ) # 并排显示 cv2.imshow('gray', gray) # cv2.imshow('edges', edges) # cv2.imshow('drawing', drawing) # cv2.imshow('drawing2', drawing2) # cv2.imshow('drawing3', drawing3) # cv2.waitKey(0) if __name__ == '__main__': main()
发表评论
-
识别图片中的人脸
2018-10-31 21:21 796识别图片中的人脸 # -*-encoding:ut ... -
opencv 模板匹配(在大图中找小图)
2018-10-22 21:31 8436# -*-encoding:utf-8-*- import ... -
opencv 直方图
2018-10-22 21:30 499# -*-encoding:utf-8-*- import ... -
opencv 轮廓特征
2018-10-21 20:35 1235# -*-encoding:utf-8-*- import ... -
opencv 轮廓
2018-10-21 20:34 521# -*-encoding:utf-8-*- import ... -
opencv 膨胀腐蚀开闭
2018-10-21 20:34 876# -*-encoding:utf-8-*- import ... -
opencv 边缘检测
2018-10-21 20:32 770# -*-encoding:utf-8-*- import ... -
opencv 平滑图像
2018-10-17 21:25 724opencv 平滑图像 模糊/平滑图片来消除图片噪声 O ... -
opencv 图像混合
2018-10-17 20:58 711opencv 图像混合 图片间的数学运算,如相加、按位运算 ... -
opencv 绘图功能
2018-10-16 22:04 842opencv 绘图功能 学习画线、圆和矩形等多种几何形状, ... -
opencv 图像几何变换
2018-10-16 19:36 919opencv 图像几何变换 实现旋转、平移和缩放图片 了解仿 ... -
opencv 阈值分割
2018-10-16 16:02 1237opencv 阈值分割 同的阈值方法”二值化”图像。 使用 ... -
opencv 颜色空间转换
2018-10-15 19:42 1314opencv 颜色空间转换 颜色空间转换,如BGR↔Gray ... -
openvc 图像基本操作
2018-10-15 19:11 977openvc 图像基本操作 访问和修改图片像素点的值 px ... -
Python OpenCV 基本操作
2018-10-12 22:46 399Python OpenCV 基本操作 加载图片,显示图片, ... -
Python OpenCV 形态学操作(腐蚀膨胀,开运算和闭运算)
2018-10-12 22:32 5346Python OpenCV 形态学操作(腐蚀膨胀,开运算和闭运 ...
相关推荐
在这个项目中,"QT+opencv霍夫直线检测,圆检测及椭圆检测"涉及到使用OpenCV库中的霍夫变换(Hough Transform)算法来识别图像中的直线、圆形和椭圆形。 霍夫变换是图像处理中的一种特征检测技术,它能有效地检测出...
【OpenCV入门教程之十四】主要讲解了OpenCV中的霍夫变换,包括霍夫线变换和霍夫圆变换。霍夫变换是一种图像处理中的特征提取技术,由Paul Hough在1962年提出,主要用于从黑白图像中检测直线和曲线。它的基本思想是在...
在OpenCV库中,霍夫变换被广泛应用于图像分析和模式识别任务,尤其在边缘检测后寻找几何形状方面表现出色。本教程将详细介绍如何使用OpenCV库实现霍夫线变换,以检测图像中的直线。 霍夫变换的基本原理是通过从像素...
在这个"opencv霍夫变换检测直线.zip"压缩包中,可能包含了示例代码(opcvt.py)和相关的示例图片,用于演示如何在OpenCV中实现霍夫变换检测直线的过程。通过学习这个案例,你可以深入理解霍夫变换的工作原理,并将其...
霍夫变换是图像处理领域中的一种经典算法,主要用于检测图像中的几何形状,如直线、圆、椭圆等。在这个场景中,我们关注的是利用霍夫变换来检测圆形。OpenCV是一个强大的开源计算机视觉库,它提供了实现霍夫变换检测...
霍夫变换的优点是可以检测出图像中的所有大于规定长度的直线段,并且可以检测出图像中的所有方向的直线。但是,霍夫变换也存在一些缺点,如计算复杂度高、detecting结果不稳定等。 霍夫变换是一种有效的图像处理...
在图像处理和计算机视觉领域,霍夫变换是一种被广泛使用的特征检测方法,尤其适用于检测图像中的直线、圆等规则形状。本篇将详细介绍如何利用Python结合OpenCV库实现霍夫变换来检测图像中的直线,并通过实例演示具体...
总之,基于OpenCV的圆形识别利用霍夫变换在图像中检测圆形,通过预处理、边缘检测和参数空间的分析,实现精确的圆形定位。这一技术广泛应用于各种场景,包括交通标志识别、制造业质量控制、医学图像分析等。理解和...
对于圆的检测,霍夫变换通过将像素坐标映射到三个参数空间(中心点的x坐标、y坐标和圆的半径r)进行投票,最终找到出现频率最高的参数组合,这些组合对应的点在参数空间中形成峰值,代表了图像中的圆形。 在OpenCV ...
霍夫变换是一种在图像处理领域广泛使用的算法,主要用于检测图像中的特定形状,如直线、圆、椭圆等。在这个特定的案例中,我们关注的是直线检测。霍夫变换的直线检测是通过将图像中的像素点转换到霍夫空间来实现的,...
在给定的“jiqishijue.zip”压缩包中,包含了一个使用Python和OpenCV库进行图像处理的例子,特别是关于霍夫变换用于识别和绘制图像中的圆。这个例子非常适合初学者学习和参考。 首先,让我们了解一下霍夫变换的基本...
这个技术利用了霍夫变换(Hough Transform)的概念,它是一种参数空间的投票机制,能够有效地检测出图像中的一类形状,如直线、圆、椭圆等。在OpenCV库中,`HoughCircles`函数提供了实现霍夫圆检测的功能。 霍夫圆...
在OpenCV库中,霍夫变换被广泛应用于直线和圆的检测,从而帮助识别和提取图像中的几何特征。本篇文章将深入探讨霍夫直线检测和霍夫圆检测,并结合给定的`houghlines.cpp`和`houghcircles.cpp`源代码文件,解释其实现...
霍夫变换是计算机视觉领域中一种重要的几何形状检测方法,主要用来识别图像中的直线、圆、椭圆等形状。在本实例中,我们将探讨如何利用OpenCV库来实现图像的霍夫变换功能,以检测图像中的直线。 OpenCV(开源计算机...
霍夫变换是一种图像处理技术,常用于检测图像中的直线、圆和其他几何形状。在这个教程中,我们将重点关注圆的检测,这对于多种计算机视觉应用至关重要,例如车辆检测、面部识别和工业自动化。 霍夫变换的基本原理是...
霍夫变换是一种用于检测图像中特定形状(如直线、圆等)的有效方法。它的基本思想是在参数空间中寻找局部极大值,从而确定形状的位置和大小。对于圆形检测而言,使用的是霍夫圆变换。 #### 三、霍夫圆变换参数详解 ...
在文件"**HoughTrans**"中,可能包含实现这些功能的代码示例或库函数,例如OpenCV库就提供了霍夫变换的相关接口,可以方便地用于检测图像中的圆形和矩形。通过学习和理解这些代码,你可以掌握如何在实际项目中运用...
本讲将聚焦于霍夫变换(Hough Transform),特别是HoughLinesP函数,它是OpenCV中用于检测直线的一种高效算法,特别适用于边缘检测和线性矢量分析。 霍夫变换是一种参数空间的投票方法,用于寻找图像中的几何形状,...
为了增加长度和宽度识别的功能,可能还需要引入形状分析,例如利用霍夫变换检测直线,从而得到划痕的精确长度。 此外,如果划痕的颜色、亮度或者纹理与背景有显著区别,还可以使用色彩模型(如HSV、Lab)或纹理分析...