Объединить контуры изображения с другим изображением - PullRequest
0 голосов
/ 31 октября 2018

Допустим, у меня есть изображение в виде массива. все белые пиксели - 1, а черные - нули. У меня также есть это изображение в виде массива. Я хочу взять snqke с первого изображения без белого фона и вставить его на изображение леса, используя python. Кто-нибудь здесь знает, как это сделать?

1 Ответ

0 голосов
/ 01 ноября 2018

Я подумал, что было бы более поучительно и весело сделать змею красной - очевидно, вы можете ходить вокруг столько, сколько хотите, теперь у вас есть что-то, что работает.

#!/usr/bin/env python3

from PIL import Image
import numpy as np

snake  = Image.open('snake.jpg').convert('L')
forest = Image.open('forest.jpg').convert('RGB')

# Make sensible sizes
snakedims = (100,150)
snake  = snake.resize(snakedims)
forest = forest.resize((600,800))

# Make into numpy arrays
snakenp  = np.array(snake)
forestnp = np.array(forest)

# Top-left corner of where we want snake to appear
topleft = 300,500

# Create an ROI - Region of Interest - same size as snake
roi = forestnp[topleft[1]:topleft[1]+snakedims[1], topleft[0]:topleft[0]+snakedims[0], :]

# Everywhere in the ROI where the snake is less than 128, put red (255,0,0)
roi[snakenp<128] = 255,0,0

# Save result to disk
Image.fromarray(forestnp).save('result.png')

enter image description here

...