给定 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
如何可视化此级联图像?
你或多或少地回答了你自己的问题。如果在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)
那么您正在寻找不同的功能。