欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 已知平行四邊形三個(gè)點(diǎn),求第四個(gè)點(diǎn)的案例

 更新時(shí)間:2020年04月12日 14:50:15   作者:zoe_cf  
這篇文章主要介紹了python 已知平行四邊形三個(gè)點(diǎn),求第四個(gè)點(diǎn)的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧!

import numpy as np
#已知平行四邊形三個(gè)點(diǎn),求第四個(gè)點(diǎn)
#計(jì)算兩點(diǎn)之間的距離
def CalcEuclideanDistance(point1,point2):
  vec1 = np.array(point1)
  vec2 = np.array(point2)
  distance = np.linalg.norm(vec1 - vec2)
  return distance
#計(jì)算第四個(gè)點(diǎn)
def CalcFourthPoint(point1,point2,point3): #pint3為A點(diǎn)
  D = (point1[0]+point2[0]-point3[0],point1[1]+point2[1]-point3[1])
  return D
#三點(diǎn)構(gòu)成一個(gè)三角形,利用兩點(diǎn)之間的距離,判斷鄰邊AB和AC,利用向量法以及平行四邊形法則,可以求得第四個(gè)點(diǎn)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)))

補(bǔ)充知識(shí):計(jì)算圖像中任意四個(gè)點(diǎn)連成的四邊形面積與Ground truth的IOU(Python)

1.先求任意四個(gè)點(diǎn)連成四邊形的面積

這個(gè)問題可以用下面的圖簡(jiǎn)單的看一下

圖像的坐標(biāo)如上圖所示,大致的想法就是四個(gè)點(diǎn)可以確定四條線,然后進(jìn)行判斷,在紅色區(qū)域中則為面積中的一個(gè)像素,否則不在。先求四條線的斜率

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

然后計(jì)算每個(gè)位置上的各個(gè)函數(shù)值

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

判斷條件很重要,因?yàn)樽筮吺悄菢优帕械?,所以判斷條件就是

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

也就是在紅色區(qū)域中任取一點(diǎn)都滿足這個(gè)條件。定義一個(gè)全局變量,滿足條件就+1。面積就求出來了。

其實(shí)求面積并不是我的目的

2.求相交的面積

兩個(gè)面積分別求出來以后,兩個(gè)面積的交集面積最簡(jiǎn)單的可以通過對(duì)照兩個(gè)區(qū)域的坐標(biāo)進(jìn)行求解。

也就是在分別計(jì)算兩個(gè)面積的時(shí)候記下符合條件的坐標(biāo)(x,y)存放到數(shù)組中,最后比較兩個(gè)數(shù)組中相等的元素的個(gè)數(shù)即可求解。

3.并面積

交的面積計(jì)算完后,可以用下面的公式(S1:四邊形1的面積、S2:四邊形2的面積、iu:交面積)

并面積=S1-iu+S2

4.IOU

交面積/并面積

5.測(cè)試

(1)

(2)

(3)

可以看到最后一種情況紅框已經(jīng)把ground truth包含了,所以可以直接用S2/S1來檢驗(yàn)算法的準(zhǔn)確性

而13882/19307=0.719013829181126,可以證明算法的準(zhǔn)確性。

測(cè)試代碼:鏈接

和別的算法進(jìn)行比較

還是有區(qū)別的。。。

v2是向量方法計(jì)算

v3是shapely包計(jì)算

以上這篇python 已知平行四邊形三個(gè)點(diǎn),求第四個(gè)點(diǎn)的案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用python寫一個(gè)帶有g(shù)ui界面的密碼生成器

    用python寫一個(gè)帶有g(shù)ui界面的密碼生成器

    這篇文章主要介紹了用python寫一個(gè)帶有g(shù)ui界面的密碼生成器,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • 利用Python網(wǎng)絡(luò)爬蟲爬取各大音樂評(píng)論的代碼

    利用Python網(wǎng)絡(luò)爬蟲爬取各大音樂評(píng)論的代碼

    這篇文章主要介紹了如何用Python網(wǎng)絡(luò)爬蟲爬取網(wǎng)易云音樂評(píng)論,文章用代碼詳細(xì)的示范了如何爬取網(wǎng)易云音樂評(píng)論,對(duì)正在學(xué)習(xí)的小伙伴有參考價(jià)值,需要的朋友可以參考下
    2021-04-04
  • Tensorflow實(shí)現(xiàn)多GPU并行方式

    Tensorflow實(shí)現(xiàn)多GPU并行方式

    今天小編就為大家分享一篇Tensorflow實(shí)現(xiàn)多GPU并行方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python提取word文件中的所有圖片

    python提取word文件中的所有圖片

    辦公中,偶爾會(huì)碰到一種情況,需要提取word文檔中的圖片,決定寫這樣一款工具自動(dòng)提取圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • python實(shí)現(xiàn)簡(jiǎn)單的井字棋

    python實(shí)現(xiàn)簡(jiǎn)單的井字棋

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單的井字棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Python實(shí)現(xiàn)仿射密碼的思路詳解

    Python實(shí)現(xiàn)仿射密碼的思路詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)仿射密碼的思路詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python?中的?Counter?模塊及使用詳解(搞定重復(fù)計(jì)數(shù))

    Python?中的?Counter?模塊及使用詳解(搞定重復(fù)計(jì)數(shù))

    Counter 是一個(gè)簡(jiǎn)單的計(jì)數(shù)器,用于統(tǒng)計(jì)某些可哈希對(duì)象的數(shù)量。它以字典的形式存儲(chǔ)元素和它們的計(jì)數(shù),這篇文章主要介紹了Python?中的?Counter?模塊及使用詳解(搞定重復(fù)計(jì)數(shù)),需要的朋友可以參考下
    2023-04-04
  • Python實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換教程詳解

    Python實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換教程詳解

    農(nóng)歷,是我國現(xiàn)行的傳統(tǒng)歷法。它是根據(jù)月相的變化周期,每一次月相朔望變化為一個(gè)月,參考太陽回歸年為一年的長度,并加入二十四節(jié)氣與設(shè)置閏月以使平均歷年與回歸年相適應(yīng)。本文將用Python實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換,需要的可以參考一下
    2022-03-03
  • 基于Python實(shí)現(xiàn)開發(fā)釘釘通知機(jī)器人

    基于Python實(shí)現(xiàn)開發(fā)釘釘通知機(jī)器人

    在項(xiàng)目協(xié)同工作或自動(dòng)化流程完成時(shí),我們需要用一定的手段通知自己或他人。Telegram 非常好用,幾個(gè)步驟就能創(chuàng)建一個(gè)機(jī)器人,可惜在國內(nèi)無法使用。所以本文就來開發(fā)一個(gè)釘釘通知機(jī)器人吧
    2023-02-02
  • 基于python操作ES實(shí)例詳解

    基于python操作ES實(shí)例詳解

    這篇文章主要介紹了基于python操作ES實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11

最新評(píng)論