博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python opencv 霍夫变换
阅读量:4101 次
发布时间:2019-05-25

本文共 1164 字,大约阅读时间需要 3 分钟。

python opencv 霍夫变换

© Fu Xianjun. All Rights Reserved.

文章目录

  1. 霍夫变换是什么
  2. 步骤
  3. 入库
  4. 读入数据
  5. 效果图展示

 

 

霍夫变换是什么

霍夫变换:霍夫变换是一种特征检测(feature extraction),被广泛应用在(image analysis)、计算机视觉(computer vision)以及数位影像处理(digital image processing)。霍夫变换是用来辨别找出物件中的特征,例如:线条。他的流程大致如下,给定一个物件、要辨别的形状的种类,算法会在参数空间(parameter space)中执行投票来决定物体的形状,而这是由累加空间(accumulator space)里的局部最大值(local maximum)来决定。

二,步骤

1.引入库模版

import cv2import numpy as np

1.2 读取模版图片

template = cv2.imread(要读取的图片)cv_show("template",template)

1.3读取检测图片

img = cv2.imread("检测的图片")cv_show("img",img)

1.4获取模版的大小

# 获取到我们模版的大小h,wh, w = template.shape[:2]

1.5进行匹配

2.1读入数据

 

import cv2

import numpy as np

 

img = cv2.imread("shape.png")#读取原图

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

edge = cv2.Canny(gray,50,150)

 

lines = cv2.HoughLines(edge,1,np.pi/180,50)

#画线

for line in lines:

    rho,theta = line[0]

    a = np.cos(theta)

    b = np.sin(theta)

    x0 = rho * a

    y0 = rho * b

    x1 = int(x0 + 1000 * (-b))

    y1 = int(y0 + 1000 * a)

    x2 = int(x0 - 1000 * (-b))

    y2 = int(y0 - 1000 * a)

   

    cv2.line(img,(x1,y1),(x2,y2),(0,255,0),2)

cv2.imshow("img",img)

cv2.imshow("gray",gray)

cv2.imshow("edges",edges)

cv2.waitKey(0)

cv2.destroyAllWindows()

————————————————
 

效果图展示

 

 

2.2霍夫变换,基本方法

 

 

转载地址:http://okusi.baihongyu.com/

你可能感兴趣的文章
Statement与PreparedStatement区别
查看>>
Tomcat配置数据源步骤以及使用JNDI
查看>>
before start of result set 是什么错误
查看>>
(正则表达式)表单验证
查看>>
在JS中 onclick="save();return false;"return false是
查看>>
JSTL 常用标签总结
查看>>
内容里面带标签,在HTML显示问题,JSTL
查看>>
VS编译器运行后闪退,处理方法
查看>>
用div+css做下拉菜单,当鼠标移向2级菜单时,为什么1级菜单的a:hover背景色就不管用了?
查看>>
idea 有时提示找不到类或者符号
查看>>
JS遍历的多种方式
查看>>
ng-class的几种用法
查看>>
node入门demo-Ajax让前端angularjs/jquery与后台node.js交互,技术支持:mysql+html+angularjs/jquery
查看>>
神经网络--单层感知器
查看>>
注册表修改DOS的编码页为utf-8
查看>>
matplotlib.pyplot.plot()参数详解
查看>>
拉格朗日对偶问题详解
查看>>
MFC矩阵运算
查看>>
最小二乘法拟合:原理,python源码,C++源码
查看>>
ubuntu 安装mysql
查看>>