Определите максимальное и минимальное значение пикселя для рисования ограничительной рамки - PullRequest
0 голосов
/ 27 декабря 2018

Учитывая изображение с семантической картой,

enter image description here

enter image description here

В Python, Какмогу ли я нарисовать ограничительную рамку вокруг человека, стоящего, например?

Я провел некоторое исследование и понял, что мне нужно выбрать максимальное и минимальное значение пикселя, чтобы получить информацию о ограничивающей рамке.Но я не понимаю, как это реализовать.

1 Ответ

0 голосов
/ 27 декабря 2018
  1. Перерисовать объект, который вы хотите пометить, уникальным для этого цвета семантической картой.Например, я использовал зеленый:

semantic map

Запустите следующий скрипт:

.

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')
В конце вы получите следующее изображение:

result image with bounding box

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...