本文共 1164 字,大约阅读时间需要 3 分钟。
python opencv 霍夫变换
Fu Xianjun. All Rights Reserved.文章目录
一,霍夫变换是什么?
霍夫变换:霍夫变换是一种特征检测(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)
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/