[英]Opencv Join bounding boxes python
我有一個 haar 檢測,它會產生一些附近的檢測:
[[ 31 85 232 116]
[141 55 66 33]
[112 41 104 52]]
每個列表都有以下值: x,y,w,h
id 喜歡獲取所有檢測中最左上角的X,Y
和最右下角的x,y
。
我嘗試使用min()
和max()
但不會產生錯誤。 之后我嘗試使用 Numpy 並且我無法制作我需要的東西
import numpy as np
l = [10, 22, 8, 8, 11]
print(np.argmax(l))
print(np.argmin(l))
在我的問題中,列表應該是列表列表,我只想得到更小的x,y
和更高的x,y
x = [ [ 31,85,232,116],
[141,55,66,33],
[112,41,104,52]
]
您可以使用具有前 2 個元素的值的自定義鍵來獲取最大值和最小值。 由於您需要在所有邊界框周圍繪制一個邊界框,因此您需要找到x,y
對的最小值和x+w,y+h
對的最大值
這假設 x,y 值始終為正,這在圖像場景中很好。
min(x,key=lambda x:(x[0],x[1]))[:2]
max([(e[0]+e[2],e[1]+e[3]) for e in x ])
出去:
[31, 85]
(263, 201)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.