1

给定一张带有语义图的图像,

在此处输入图像描述

在此处输入图像描述

在 python 中,如何在站立的人周围绘制一个边界框?

我做了一些研究,了解到我需要选择最大和最小像素值来获取边界框信息。但我不明白如何实现这一点。

4

1 回答 1

1
  1. 重新绘制您想要为该语义图颜色唯一装箱的对象。例如,我使用了绿色:

语义图

  1. 运行以下脚本:

.

from PIL import Image, ImageDraw

IMAGE = 't5XM4.png'
IMAGE_MAP = 'Gz8b7.png'
IMAGE_OUTPUT = 'Result.png'
GREEN = (0, 255, 0)
OFFSET = 10

image_map = Image.open(IMAGE_MAP)
image = Image.open(IMAGE)
pixels = image_map.load()
size_sm = image_map.size
size = image.size
ratio = (size_sm[0]/size[0], size_sm[1]/size[1])
x_list = []
y_list = []

for x in range(size_sm[0]):
    for y in range(size_sm[1]):
        if pixels[x, y] == GREEN:
            x_list.append(x)
            y_list.append(y)

draw = ImageDraw.Draw(image)
draw.rectangle(((min(x_list)/ratio[0]-OFFSET, min(y_list)/ratio[1]-OFFSET),
                (max(x_list)/ratio[0]+OFFSET,max(y_list)/ratio[1]+OFFSET)),
               width=5, outline=GREEN)
image.save(IMAGE_OUTPUT, 'PNG')
  1. 最后你有以下图像:

带边界框的结果图像

于 2018-12-27T14:24:36.097 回答