numpy与轴-1串联使用matplotlib进行可视化

时间:2019-10-16 13:15:54

标签: python numpy matplotlib

给出2张图像,axis = 0中的axis = 1np.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  

如何可视化此级联图像?

1 个答案:

答案 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),那么您正在寻找其他函数。