簡體   English   中英

Opencv 加入邊界框 python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM