OpenCV | 霍夫变换检测直线

上次写的不好,这次重写一个霍夫变化的框架,里面包括灰度转换、滤波

canny边缘检测、霍夫变换等......

原始图像

python 复制代码
import cv2
import numpy as np
import matplotlib.pyplot as plt#Matplotlib是RGB
%matplotlib inline 

def detect_parking_lines(image_path):
    # 读取图像
    img = cv2.imread(image_path)

    # 灰度转换
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    # 高斯滤波
    gray = cv2.GaussianBlur(gray, (5, 5), 0)

    # Canny 边缘检测
    edges = cv2.Canny(gray, 50, 150)

    # Hough 变换检测直线
    lines = cv2.HoughLines(edges, 1, np.pi / 180, 130)

    # 绘制检测到的直线
    if lines is not None:
        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(img, (x1, y1), (x2, y2), (0, 255, 0), 2)

    # 显示结果
    cv2.imshow('Detected Parking Lines', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

# 调用函数进行车位线检测
detect_parking_lines('chessboard.jpg')

识别后图像:

相关推荐
程序猿追3 分钟前
PyTorch算子模板库技术解读:无缝衔接PyTorch模型与Ascend硬件的桥梁
人工智能·pytorch·python·深度学习·机器学习
程序小旭3 分钟前
Kaggle平台的使用
人工智能
xieyan08118 分钟前
强化学习工具及优化方法
人工智能
雍凉明月夜26 分钟前
视觉opencv学习笔记Ⅲ
笔记·opencv·学习
秋邱26 分钟前
高等教育 AI 智能体的 “导学诊践” 闭环
开发语言·网络·数据库·人工智能·python·docker
数据的世界0133 分钟前
重构智慧书-第3条:公开有界,保密有度:行事的分寸准则
人工智能
许泽宇的技术分享35 分钟前
AgentFramework-零基础入门-第08章_部署和监控代理
人工智能·后端·agent框架·agentframework
数据与后端架构提升之路40 分钟前
Map-World:用“填空”与“路径积分”重构自动驾驶规划范式
人工智能·自动驾驶·世界模型·锚点预测
陈天伟教授44 分钟前
机器学习方法(4)强化学习(试错学习)
人工智能·学习·机器学习
青瓷程序设计1 小时前
【宠物识别系统】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习