python 已知平行四边形三个点,求第四个点的案例


Posted in Python onApril 12, 2020

我就废话不多说了,大家还是直接看代码吧!

import numpy as np
#已知平行四边形三个点,求第四个点
#计算两点之间的距离
def CalcEuclideanDistance(point1,point2):
  vec1 = np.array(point1)
  vec2 = np.array(point2)
  distance = np.linalg.norm(vec1 - vec2)
  return distance
#计算第四个点
def CalcFourthPoint(point1,point2,point3): #pint3为A点
  D = (point1[0]+point2[0]-point3[0],point1[1]+point2[1]-point3[1])
  return D
#三点构成一个三角形,利用两点之间的距离,判断邻边AB和AC,利用向量法以及平行四边形法则,可以求得第四个点D
def JudgeBeveling(point1,point2,point3):
  dist1 = CalcEuclideanDistance(point1,point2)
  dist2 = CalcEuclideanDistance(point1,point3)
  dist3 = CalcEuclideanDistance(point2,point3)
  dist = [dist1, dist2, dist3]
  max_dist = dist.index(max(dist))
  if max_dist == 0:
    D = CalcFourthPoint(point1,point2,point3)
  elif max_dist == 1:
    D = CalcFourthPoint(point1,point3,point2)
  else:
    D = CalcFourthPoint(point2,point3,point1)
  return D
 
print(JudgeBeveling((0,1),(1,0),(1,1)))
print(JudgeBeveling((5,39),(500,35),(496,17)))

补充知识:计算图像中任意四个点连成的四边形面积与Ground truth的IOU(Python)

1.先求任意四个点连成四边形的面积

这个问题可以用下面的图简单的看一下

python 已知平行四边形三个点,求第四个点的案例

图像的坐标如上图所示,大致的想法就是四个点可以确定四条线,然后进行判断,在红色区域中则为面积中的一个像素,否则不在。先求四条线的斜率

def line_slope(x1,y1,x2,y2,x3,y3,x4,y4):
    k1=(y2-y1)/(x2-x1)
    k2=(y3-y2)/(x3-x2)
    k3=(y4-y3)/(x4-x3)
    k4=(y1-y4)/(x1-x4)
    return k1,k2,k3,k4

然后计算每个位置上的各个函数值

l1=int(tk1*(i-tx1)+ty1)
        l2=int(tk2*(i-tx2)+ty2)
        l3=int(tk3*(i-tx3)+ty3)
        l4=int(tk4*(i-tx4)+ty4)

判断条件很重要,因为左边是那样排列的,所以判断条件就是

(l1<=j)&(l2>=j)&(l3>=j)&(l4<=j)

也就是在红色区域中任取一点都满足这个条件。定义一个全局变量,满足条件就+1。面积就求出来了。

其实求面积并不是我的目的

2.求相交的面积

python 已知平行四边形三个点,求第四个点的案例

两个面积分别求出来以后,两个面积的交集面积最简单的可以通过对照两个区域的坐标进行求解。

也就是在分别计算两个面积的时候记下符合条件的坐标(x,y)存放到数组中,最后比较两个数组中相等的元素的个数即可求解。

3.并面积

交的面积计算完后,可以用下面的公式(S1:四边形1的面积、S2:四边形2的面积、iu:交面积)

并面积=S1-iu+S2

4.IOU

交面积/并面积

5.测试

(1)

python 已知平行四边形三个点,求第四个点的案例

(2)

python 已知平行四边形三个点,求第四个点的案例

(3)

python 已知平行四边形三个点,求第四个点的案例

可以看到最后一种情况红框已经把ground truth包含了,所以可以直接用S2/S1来检验算法的准确性

而13882/19307=0.719013829181126,可以证明算法的准确性。

测试代码:链接

和别的算法进行比较

还是有区别的。。。

v2是向量方法计算

v3是shapely包计算

以上这篇python 已知平行四边形三个点,求第四个点的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中元类用法实例
Oct 10 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 Python
Python3实现发送QQ邮件功能(附件)
Dec 23 Python
python3.6 实现AES加密的示例(pyCryptodome)
Jan 10 Python
Python3爬虫全国地址信息
Jan 05 Python
python 获取毫秒数,计算调用时长的方法
Feb 20 Python
Django框架之登录后自定义跳转页面的实现方法
Jul 18 Python
使用django和vue进行数据交互的方法步骤
Nov 11 Python
动态设置django的model field的默认值操作步骤
Mar 30 Python
python实现数字炸弹游戏
Jul 17 Python
Python中常见的导入方式总结
May 06 Python
python 已知三条边求三角形的角度案例
Apr 12 #Python
python实现输入三角形边长自动作图求面积案例
Apr 12 #Python
Python3如何判断三角形的类型
Apr 12 #Python
Python判断三段线能否构成三角形的代码
Apr 12 #Python
Python 实现打印单词的菱形字符图案
Apr 12 #Python
python 使用while循环输出*组成的菱形实例
Apr 12 #Python
Python利用for循环打印星号三角形的案例
Apr 12 #Python
You might like
一个简单计数器的源代码
2006/10/09 PHP
自动分页的不完整解决方案
2007/01/12 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
使用cookie绕过验证码登录的实现代码
2017/10/12 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
Python 如何提高元组的可读性
2019/08/26 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
python实现快递价格查询系统
2020/03/03 Python
Python中openpyxl实现vlookup函数的实例
2020/10/28 Python
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
最新大学职业规划书范文
2013/12/30 职场文书
委托证明的格式
2014/01/10 职场文书
会计专业求职信
2014/08/10 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
2014最新自愿离婚协议书范本
2014/11/19 职场文书
高校教师个人总结
2015/02/10 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
社会实践活动总结格式
2015/05/11 职场文书
二审代理词范文
2015/05/25 职场文书
母亲去世追悼词
2015/06/23 职场文书