给出2张图像,axis = 0
中的axis = 1
和np.concatenate
将行和列中的图像分别连接起来。
但是axis = -1
将级联图像的通道更改为 6 ,这会在使用matplotlib
进行可视化时导致以下错误:
raise TypeError("Invalid dimensions for image data")
TypeError: Invalid dimensions for image data
我使用的代码:
import matplotlib.pyplot as plt
import numpy as np
img_A = cv2.imread('1.jpg')
img_B = cv2.imread('2.jpg')
conc_img = np.concatenate((img_A, img_B), axis=-1)
print "shape:\t imgA={},imgB={},conc_img={}".format(img_A.shape, img_B.shape, conc_img.shape)
plt.imshow(conc_img)
plt.show()
打印函数返回:
shape: imgA=(375, 500, 3),imgB=(375, 500, 3),conc_img=(375, 500, 6) # <<-- channel is changed to 6
如何可视化此级联图像?
答案 0 :(得分:0)
您或多或少回答了自己的问题。如果在axis=-1
(最后一个轴)上串联,则表示在RGB通道上串联。如您所说,这将导致6个通道,并且图像只能具有1个,3个或4个通道。
尝试:
conc_img = np.concatenate((img_A, img_B), axis=1)
您将获得形状为(375, 1000, 3)
的数组。或将axis
更改为0以在第一轴上串联并获得(750, 500, 3)
。
或者您是说“连接”以外的意思吗?如果您希望结果具有形状(375, 500, 3)
,那么您正在寻找其他函数。