我有一个numpy 2D矩阵,代表着一张彩色图片。这个矩阵中有一些负数和浮点数,但是我可以使用imshow(my_matrix)来显示图片。
我再次搜索,但我发现所有的内容都是将常规的3D numpy矩阵转换为OpenCV矩阵,那么如何将numpy 2D矩阵转换为需要3个通道的OpenCV矩阵呢?
我有一个numpy 2D矩阵,代表着一张彩色图片。这个矩阵中有一些负数和浮点数,但是我可以使用imshow(my_matrix)来显示图片。
img_np = np.ones([100,100])
img_cv = cv2.resize(img_np,(200,200))
你可以尝试
最好将现有的numpy数组叠放在其自身副本之上,而不是重新调整其大小并添加第三个轴。请查看以下代码:
import numpy as np
import matplotlib.pyplot as plt
a = np.random.rand(90, 100) # Replace this line with your 90x100 numpy array.
a = np.expand_dims(a, axis = 2)
a = np.concatenate((a, a, a), axis = 2)
print(a.shape)
# (90, 100, 3)
plt.imshow(a)
plt.show()
你将会得到一张灰色的图片。
np.random.rand
这一行。你需要用你已经存在的 90x100 的 numpy 数组替换掉这一行。我只是为了代码完成而生成了一个随机数组。 - Prasad
my_matrix.shape
的输出是什么? - akilat90np.reshape()
将其转换为一个3D数组。 - akilat90new_img = np.reshape(img,(rows,cols/3,3)
- zindarod