Numpy 与轴 -1 连接,使用 matplotlib 可视化



给定 2 张图像,axis = 0axis = 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)那么您正在寻找不同的功能。

最新更新