python 检测四边形,并矫正

228 篇文章 25 订阅

 

# -*- coding: utf-8 -*-
import os
import time

import numpy as np
import cv2

#coding=utf-8
import numpy as np
import cv2
import os

from utils.data_augment_1114 import rotate_3


class Point(object):
    x =0
    y= 0
    # 定义构造方法
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y


class Line(object):
    def __init__(self, x1,y1,x2,y2 ):
        self.p1 = Point(x1,y1)
        self.p2 = Point(x2,y2)

def GetLinePara(line):
    line.a =line.p1.y - line.p2.y;
    line.b = line.p2.x - line.p1.x;
    line.c = line.p1.x *line.p2.y - line.p2.x * line.p1.y;

def GetCrossPoint(l1,l2):
    GetLinePara(l1);
    GetLinePara(l2);
    d = l1.a * l2.b - l2.a * l1.b
    p=Point()
    if d==0:
       return (-1,-1)
    else:
        p.x = int((l1.b * l2.c - l2.b * l1.c)*1.0 / d)
        p.y = int((l1.c * l2.a - l2.c * l1.a)*1.0 / d)
    return (p.x,p.y)
# coordina
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值