求向量檔案的iou

2021-10-10 06:24:32 字數 1805 閱讀 5288

import numpy as np 

import shapely

from shapely import geometry

from shapely.geometry import polygon,multipoint #多邊形

import matplotlib.pyplot as plt

line1=[2

,0,2

,2,0

,0,0

,2]#四邊形四個點座標的一維陣列表示,[x,y,x,y....]

a=np.array(line1)

.reshape(4,

2)#四邊形二維座標表示

poly1 = polygon(a)

.convex_hull #python四邊形物件,會自動計算四個點,最後四個點順序為:左上 左下 右下 右上 左上

print

(polygon(a)

.convex_hull)

#可以列印看看是不是這樣子

line2=[1

,1,4

,1,4

,4,1

,4]b=np.array(line2)

.reshape(4,

2)poly2 = polygon(b)

.convex_hull

print

(polygon(b)

.convex_hull)

union_poly = np.concatenate(

(a,b)

)#合併兩個box座標,變為8*2

#print(union_poly)

print

(multipoint(union_poly)

.convex_hull)

#包含兩四邊形最小的多邊形點

ifnot poly1.intersects(poly2)

:#如果兩四邊形不相交

iou =

0else

:try

: inter_area = poly1.intersection(poly2)

.area #相交面積

print

(inter_area)

#union_area = poly1.area + poly2.area - inter_area

union_area = multipoint(union_poly)

.convex_hull.area

print

(union_area)

if union_area ==0:

iou=

0#iou = float(inter_area) / (union_area-inter_area) #錯了

iou=

float

(inter_area)

/ union_area

# iou=float(inter_area) /(poly1.area+poly2.area-inter_area)

# 原始碼中給出了兩種iou計算方式,第一種計算的是: 交集部分/包含兩個四邊形最小多邊形的面積

# 第二種: 交集 / 並集(常見矩形框iou計算方式)

except shapely.geos.topologicalerror:

print

('shapely.geos.topologicalerror occured, iou set to 0'

) iou =

0print

(a)print

(iou)

搜到暫存,有時間完善

求向量的垂線 浙江向量專題(學生)

歡迎關注qq群235036783 高中數學研討群本著為大家搭建好的教研平台,創造好的教研環境,不斷進步,互幫互助的原則,希望有研究高考,解題,命題,教學等興趣的高中數學教師,優秀大學生加入,群內資料豐富,專題全面,系統,教研氛圍濃厚,歡迎您的加入。2020屆浙江備戰高考精品專題 已發 61.立體幾何...

intdump 求向量均值

y intdump x,nsamp 對列向量x的每nsamp個元素求均值。如果x有多列,對每列分別執行。s rng 以結構體的形式將隨機數生成器 random number generator,rng 的設定返回 rng 68521 隨機數種子設定為68521,預設的演算法引數預設使用梅森旋轉 ns...

(原)IOU的計算

參考 中iou的計算。理解不對的地方敬請諒解。iou是兩個矩形的交集與兩個矩形並集的比值 可以這樣理解吧 如下圖所示 黃色矩形起點座標 x11,y11 終點座標 x12,y12 藍色矩形起點座標 x21,y21 終點座標 x22,y22 則 黃色矩形寬w1 x12 x11,高h1 y12 y11 黃...