openCV项目一:利用openCV处理图像

本文介绍了一个openCV项目,旨在通过图像处理技术寻找铁轨交叉点。首先,对图像进行垂直方向的卷积处理,然后进行二值化处理。接着,应用霍夫变换提取图像中的线段,最后通过数学运算找到线段的交叉点并将其画出。作者提供了代码和效果图以展示整个过程。
摘要由CSDN通过智能技术生成

目标:寻找铁轨的交叉点,并画出来
作者:Jenny

思路

1.图像处理
垂直方向 进行卷积处理
再对图像进行二值化处理
进行霍夫变换(可以提取圆、线段等形状)
2.数学运算
霍夫变换提取的线段
求得交叉点

代码


import cv2
import numpy as np
import math
def calc_line(x1, y1, x2, y2):
    """
    计算每个线段上的坐标
    :param x1:
    :param y1:
    :param x2:
    :param y2:
    :return: 坐标
    """
    # 计算斜率和偏值
    k = float(y2 - y1) / float(x2 - x1)
    b = float(y1) - float(x1) * k

    points = []
    for x in range(x1, x2 + 1):
        y = int(k * x + b)
        points.append((x, y))
    return points
def cross_pint(line1, line2):
    """
    处理线段
    :param line1:线段1
    :param line2:线段2
    :return:
    """
    point_is = False
    x,y=0,0
    #
    x1, y1, x2, y2 = line1
    x3, y3, x4, y4 = line2
    print(x1, y1, x2, y2)
    print(x3, y3, x4, y4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值