Как объединить несколько изображений в одно, используя numpy? - PullRequest
0 голосов
/ 05 февраля 2020

Я хотел бы построить фигуру до и после трансформации лица. Для этой цели я хочу объединить оба изображения до (160 x 160 x 3) и после (160 x 160 x 3) и разделить их линией (160 x 5 x 3), чтобы создать график, подобный следующему

----------------------   ----------------------
|          ||        |   |          ||        |
| BEFORE   ||  AFTER |   | BEFORE   ||  AFTER |
|          ||        |   |          ||        |
|---------------------   |---------------------

----------------------   ----------------------
|          ||        |   |          ||        |
| BEFORE   ||  AFTER |   | BEFORE   ||  AFTER |
|          ||        |   |          ||        |
|---------------------   |---------------------


Кажется, что-то не так с процессом конкатенации в следующем фрагменте.

dataset = failed_aligned_images
samples = np.random.choice(np.arange(0, len(dataset)), 2)
fig=plt.figure(figsize=(14, 10))
rows = 5
cols = 6

for idx, i in enumerate(samples):
    record = dataset[i]
    orig = record[1]
    line = np.ones((160, 5, 3))
    aligned = record[2]

    print(orig.shape)
    final = np.hstack((record[1], record[2]))
    print(final.shape)

    fig.add_subplot(rows, cols, idx+1)
    plt.imshow(final)

plt.tight_layout()
plt.show()

* dataset - это список кортежей, где каждый кортеж имеет следующий формат.

 record = (True, 160x160x3 array, 160x160x3 array, string value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...