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

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.先求任意四个点连成四边形的面积

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

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

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.求相交的面积

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

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

3.并面积

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

并面积=S1-iu+S2

4.IOU

交面积/并面积

5.测试

(1)

(2)

(3)

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

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

测试代码:链接

和别的算法进行比较

还是有区别的。。。

v2是向量方法计算

v3是shapely包计算

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

python平行四边形代码_python 已知平行四边形三个点,求第四个点的案例相关推荐

  1. python求平行四边形面积_python 已知平行四边形三个点,求第四个点的案例

    我就废话不多说了,大家还是直接看代码吧! import numpy as np #已知平行四边形三个点,求第四个点 #计算两点之间的距离 def CalcEuclideanDistance(point ...

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

    我就废话不多说了,大家还是直接看代码吧! import numpy as np #已知平行四边形三个点,求第四个点 #计算两点之间的距离 def CalcEuclideanDistance(point ...

  3. 已知三角形三点坐标, 求三角形的面积

    摘自:http://blog.sina.com.cn/s/blog_4cddcaa3010008u7.html 已知三角形三点坐标, 求三角形的面积 发表时间:2004-8-10 作者:未知[获得此文 ...

  4. 已知三角形三边长求面积java_已知三角形三点坐标求三角形面积.java

    已知三角形三点坐标求三角形面积 主程序代码如下: import java.util.*; public class Tringle { public static void main(String[] ...

  5. 【C语言】已知三角形三边长,求三角形面积

    一. 数学基础: 已知三角形的三边,计算三角形面积,需要用到海伦公式: 即p=(a+b+c)/2 二. 算法: 输入三个边长,套用海伦公式计算面积,并输出. 可以先判断是否可以构成三角形,即任意两边之 ...

  6. 已知三角形三点坐标求角度_高中数学:椭圆相关角度的最值问题

    圆锥曲线中的最值问题主要包括长度最值.角度最值及面积最值等. 例题:如图1,已知椭圆的中心在坐标原点,焦点在x轴上,长轴 的长为4,左准线与x轴的交点为M, . (1)求椭圆的方程: (2)若直线 , ...

  7. 已知三角形三边长怎么求面积_解三角形问题中的常见错解分析

    解三角形问题是个难点,怎样才能突破这个难点呢? 只有正确理解三角形中的边角关系,即三角形中的边角等量关系.边角的不等关系及内角和关系,才能克服这个难点. 下面快和包sir一起对解三角形问题中的常见错误 ...

  8. 已知三角形三点坐标求角度_2019高考数学:解三角形——正弦定理和余弦定理的解题技巧和模型...

    正弦定理.余弦定理的每一个等式中都包含三角形的四个元素(三角形有三个角和三条边,三角形的边与角称为三角形的元素),如果其中三个元素是已知的(至少要有一个元素是边),那么这个三角形一定可解.关于斜三角形 ...

  9. 已知三角形三边长怎么求面积_已知三角形三边求面积的公式——海伦公式

    海伦公式又译作希伦公式.海龙公式.希罗公式.海伦-秦九韶公式,传说是古代的叙拉古国王希伦(Heron,也称海龙)二世发现的公式,是一个利用三角形的三条边长直接求三角形面积的公式.下面我们利用初中的知识 ...

  10. 已知三角形三点坐标求角度_细心研磨椭圆焦点三角形,这肯定是最全的解释。...

    点击上方蓝字关注我 因为月考赶上运动会, 继国庆之后, 感觉又放了一个小长假. 原本身体是很愿意的, 可是, 刚讲的解析几何突然被中断了, 思想上还真是有点矛盾. 因为, 想了想两天后该讲些什么, 脑 ...

最新文章

  1. 楚留香手游系统互通的服务器,楚留香手游互通服务器汇总 哪些服能一起玩
  2. 自动驾驶领域大佬在CVPR2020中 关于3D Reconstruction Learning的报告
  3. python 第3课 数据类型之list
  4. 【基础算法复习】01背包问题(一)
  5. 东财在线计算机第一套作业,东财在线21春《计算机网络基础》第一套作业题目及答案...
  6. go的25个关键字(保留字)和36个预定标识符
  7. python3--htmltestrunner 日志显示_实时日志:Serverless Python 运行时支持日志实时输出...
  8. bert简介_关于BERT:你不知道的事
  9. C++尽量以const,enum,inline替换#define
  10. 麒麟810处理器_华为nova5跑分公布,麒麟810到底是什么水平?
  11. 如何向本地MSDN帮助库中添加和修改一些帮助内容
  12. java merge into_Oracle merge into的使用
  13. std::set作为一个有序集合
  14. Node.js 得到当前目录下文件修改文件名
  15. css bug 集2
  16. sublime快捷键设置
  17. python爬取酷狗音乐歌词_python爬虫教程:爬取酷狗音乐
  18. 计算椭圆运动轨迹的算法
  19. (一)SLAM拓扑地图(地图的生成和显示)
  20. [转载整理]计算机视觉及机器学习牛人和资料

热门文章

  1. win7怎么修改计算机皮肤,鼠标指针怎么换?小编教你win7系统更换鼠标指针皮肤的方法...
  2. linux dsi接口,RPi 树莓派 DSI 接口研究 MIPI raspberry pi
  3. 怎么将pdf转换成word 三个简单妙招通通管用
  4. NOJ1060接苹果——DP
  5. 一种可调电子负载电路/可调恒流源电路
  6. vue中友盟统计---事件跟踪部署
  7. office 中墨迹书写工具_word2016 墨迹书写 word2016墨迹书写工具
  8. 【部署】蓝绿发布、滚动发布、灰度发布,有什么区别
  9. 黑暗幽灵(DCM)木马详细分析
  10. 热插拔48块硬盘服务器,24块前置热插拔硬盘设计