久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:2日期:2022-07-30 11:12:06

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

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)Ddef 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è)問(wèn)題可以用下面的圖簡(jiǎn)單的看一下

python 已知平行四邊形三個(gè)點(diǎn),求第四個(gè)點(diǎ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。面積就求出來(lái)了。

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

2.求相交的面積

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

兩個(gè)面積分別求出來(lái)以后,兩個(gè)面積的交集面積最簡(jiǎn)單的可以通過(guò)對(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)

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

(2)

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

(3)

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

可以看到最后一種情況紅框已經(jīng)把ground truth包含了,所以可以直接用S2/S1來(lái)檢驗(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)的案例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
主站蜘蛛池模板: 国产精品久久久久国产a级 国产精品欧美一区二区三区不卡 | 免费黄色片一区二区 | 亚洲色图综合 | 在线观看国产一区 | 亚洲成人中文字幕 | 亚洲一区二区三区四区在线观看 | 国产三级久久久久 | 成人网电影| 日韩电影一区 | 日韩毛片在线视频 | 欧洲精品在线观看 | 在线观看你懂的网站 | 九九热这里只有精品8 | 性处破╳╳╳高清欧美 | 国产美女一区二区 | 精品日韩一区二区三区 | 国产一级片 | 国产精品18久久久久久久久 | 久久国产欧美日韩精品 | 福利网站在线观看 | 亚洲协和影视 | 日本三级电影网站 | 日本久久视频 | 91电影在线看 | 99久久婷婷国产综合精品电影 | 色黄网站| 精品国产依人香蕉在线精品 | 欧美午夜一区二区三区免费大片 | 九色在线 | 久久综合狠狠综合久久综合88 | 精品国产91乱码一区二区三区 | 成人网av| 亚洲精品影院 | 免费的av网站 | 久久久久久精 | 欧美一级免费在线观看 | 美女视频黄色免费 | 不卡视频一区二区 | 日韩一级| 成人日韩 | 午夜精品久久久久久久白皮肤 |