确定最大和最小像素值以绘制边界框

时间:2018-12-27 09:13:04

标签: python image-processing

给出带有语义图的图像,

enter image description here

enter image description here

在python中,例如,我如何围绕站立的人绘制边界框?

我已经做过一些研究,并且了解到我需要选择最大和最小像素值来获取边界框信息。但我不知道该如何实现。

1 个答案:

答案 0 :(得分:0)

  1. 对于该语义图颜色,以唯一的方式重绘要装箱的对象。例如,我使用了绿色:

semantic map

  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. 您最后有以下图片:

result image with bounding box