Как отобразить 2 вертикальных изображения с разным разрешением? - PullRequest
0 голосов
/ 28 апреля 2020

Я пробовал это:

import cv2
import numpy as np
import matplotlib.pyplot as plt

top=cv2.imread('top.jpg')

https://imgur.com/KHwU6z0

bottom=cv2.imread('bottom.jpg')

https://imgur.com/eO04Nj2

numpy_vertical= np.vstack((top, bottom))


cv2.imshow('detected', numpy_vertical)
cv2.imwrite('detected.jpg', numpy_vertical)

ValueError : все размеры входного массива для оси конкатенации должны точно совпадать, но по измерению 1 массив с индексом 0 имеет размер 2878, а массив с индексом 1 имеет размер 5760

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

subplotting в matplotlib также можно использовать, если вы просто хотите визуализировать изображение

import matplotlib.pyplot as plt

first = cv2.imread(r"path.... \first.png")
second = cv2.imread(r"path.... \second.png")

plt.figure()
plt.subplot(121)
plt.imshow(first)
plt.subplot(122)
plt.imshow(second)
plt.show()

0 голосов
/ 28 апреля 2020

Я взял следующие изображения, например:

Первое изображение:

enter image description here

Второе изображение:

enter image description here

Выходное изображение enter image description here

Со следующим кодом:

import cv2
import numpy as np

first = cv2.imread(r"path.... \first.png")
second = cv2.imread(r"path.... \second.png")

h1, w1, c1 = first.shape

h2, w2, c2 = second.shape

h, w= h1+h2, max(w1, w2)

out_image = np.zeros((h,w,c1))

out_image[:h1,:w1, ] = first

out_image[h1:h1+h2,:w2, ] = second

cv2.imwrite(r"path ......out.png", out_image)
...