如何找到(x,y)的最小(x,y)和最大(x,y):z型字典

2024-04-24 22:50:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下类型的字典(x, y): id

{
    (91, 23): 1, (65, 24): 6, (47, 35): 4, (17, 20): 0, (56, 25): 6, (79, 38): 8, (18, 19): 0, (43, 25): 4, (61, 38): 6,
    (44, 28): 4, (48, 37): 4, (72, 34): 8, (71, 26): 8, (73, 35): 8, (80, 34): 8, (81, 35): 8, (12, 17): 0, (63, 30): 6,
    (15, 34): 0, (33, 36): 3, (49, 38): 4, (7, 22): 0, (29, 37): 3, (57, 29): 6, (64, 32): 6, (10, 36): 0, (43, 30): 4,
    (58, 26): 6, (32, 25): 3, (94, 23): 1, (18, 36): 0, (96, 38): 1, (45, 28): 4, (73, 36): 8, (80, 25): 8, (59, 36): 6,
    (9, 19): 0, (74, 35): 8, (81, 36): 8, (96, 28): 1, (97, 25): 1, (24, 33): 3, (26, 33): 3, (46, 30): 4, (16, 29): 0,
    (17, 24): 0, (89, 33): 1, (94, 30): 1, (18, 31): 0, (13, 18): 0, (95, 31): 1, (94, 32): 1, (9, 20): 0, (24, 28): 3,
    (14, 19): 0, (81, 29): 8, (96, 19): 1, (95, 37): 1, (10, 19): 0, (75, 35): 8, (82, 26): 8
} 

如何找到所有ID的minXmaxXminY和{}?在

注意:ID是数字,但不是连续的。比如0,1,3,4,6,8

澄清: 此字典是连接组件标记算法应用于图像。用于给定的(x, y): idx和{}显示像素的位置,id显示提取的blob的id。我想找到所有斑点的minXmaxXminY和{},并从图像中提取这些斑点。最后我想知道这个小家伙的界限

^{pr2}$

Tags: 标记图像算法id类型字典组件数字
2条回答

也许这样的方法会奏效:

x = []
y = []
for coordinates in dict.keys():
    x.append(coordinates[0])
    y.append(coordinates[1])
minX = min(x)
maxX = max(x)
minY = min(y)
maxY = max(y)

这是可行的答案。也许这不是最好的答案。在

box = {}
for (x,y),id in labels.items():
    if id not in box:
        box[id] = (x,y,x,y)
    else:
        minX = min(box.get(id)[0],x)
        minY = min(box.get(id)[1],y)
        maxX = max(box.get(id)[2],x)
        maxY = max(box.get(id)[3],y)
        box[id] = (minX,minY,maxX,maxY)

相关问题 更多 >