繁体   English   中英

如何将numpy矩阵转换为cv2图像[python]

[英]How to convert numpy matrix to cv2 image [python]

我有一个numpy 2d矩阵,代表彩色图像。 这个矩阵有一些负数和浮点数,但我当然可以使用imshow(my_matrix)显示图像。

my_matrix_screenshot

我需要对这个彩色图像执行直方图均衡,所以我在stackoverflow中使用cv2( OpenCV Python equalizeHist彩色图像 )找到了一个代码,但问题是我无法将2d矩阵转换为cv矩阵,它需要三个RGB通道。

我再次搜索,但我发现只是将常规的3d numpy矩阵转换为cv2矩阵,那么如何将numpy 2d矩阵转换为具有3个通道的cv2矩阵?

因为numpy.ndarray是cv2的基础,所以你只需像往常一样编写代码

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()

你会得到一个灰色的图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM