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 黃...