HoughLines
代码:
# -*- coding=GBK -*-
import cv2 as cv
import numpy as np# hough变换检测直线与圆 :https://blog.csdn.net/on2way/article/details/47028969
def line_image(image):
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
edges = cv.Canny(gray, 50, 150, apertureSize=3) # 第四个输入参数是Sobel算子的大小,3的话就是3*3
cv.imshow("edges", edges)
lines = cv.HoughLines(edges, 1, np.pi / 180, 200) # 霍夫变换进行形状检测
# cv.HoughLines(edges, rho, theta, threshold)
# img 为输入的图像,Canny提取后的边界数据;
rho/ρ为距离精确度(理解为距离单位);
theta/θ为角度精确度(理解为角度单位单位);
threshold 为累加器阈值,当累加器中的值高于threshold时才认为是一条直线
# 返回值每段直线(ρ,θ)的的二维矩阵
for line in lines:
rho, theta = line[0]
a = np.cos(theta) # np.cos是便于计算数组所有theta的cos值,sin同理 ,而且三角函数是np库里面的
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))
cv.line(image, (x1, y1), (x2, y2), (0, 0, 255), 2) # 输入参数: img, 起始点, 终, 颜色, 宽度
cv.imshow("line", image)src = https://www.it610.com/article/cv.imread("Line.png")
cv.imshow("before", src)
line_image(src)
cv.waitKey(0)
cv.destroyAllWindows()
结果:
文章图片
备注:
文章图片
hough变换检测直线与圆参考资料:https://blog.csdn.net/on2way/article/details/47028969
HoughLinesP
代码:
# -*- coding=GBK -*-
import cv2 as cv
import numpy as npdef line_image(image):
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # 灰度图像
edges = cv.Canny(gray, 50, 200)
lines = cv.HoughLinesP(edges, 1, np.pi/180, 30, minLineLength=60, maxLineGap=10)
lines1 = lines[:, 0, :]# 提取为二维for x1, y1, x2, y2 in lines1[:]:
cv.line(image, (x1, y1), (x2, y2), (255, 0, 0), 1)
cv.imshow("line", image)src = https://www.it610.com/article/cv.imread("Line.png")
cv.imshow("before", src)
line_image(src)
cv.waitKey(0)
cv.destroyAllWindows()
结果:
文章图片
备注:
hough变换检测直线与圆参考资料:https://blog.csdn.net/on2way/article/details/47028969
【python|python实现opencv学习十七(hough变换检测直线)】
推荐阅读
- 图像处理算法|Hough变换检测直线的原理
- 使用 Python3 脚本给多个人同时发送多个 excel 附件
- Pytorch_python|神经网络的基本组成之卷积层(Conv Layer)&& 利用 Pytorch 搭建神经网络 && 空洞卷积对比普通卷积
- 用Python绘制移动均线含源代码
- 给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。
- python|这篇文章,带你全面了解外包公司
- python 邮件脚本
- 查策,查策,python字体反爬再一次实践
- python|超全超香,数据分析与数据挖掘最频繁使用代码合集来了