【发布时间】:2018-03-26 14:19:30
【问题描述】:
我有一个代表彩色图像的 numpy 2d 矩阵。这个矩阵有一些负数和浮点数,但我当然可以使用 imshow(my_matrix) 显示图像。
我需要对此彩色图像执行直方图均衡化,因此我在 stackoverflow 中使用 cv2 (OpenCV Python equalizeHist colored image) 找到了一个代码,但问题是我无法将 2d 矩阵转换为需要 RGB 三个通道的 cv 矩阵。
我再次搜索,但我发现的只是将常规 3d numpy 矩阵转换为 cv2 矩阵,那么如何将 numpy 2d 矩阵转换为具有 3 个通道的 cv2 矩阵?
【问题讨论】:
-
my_matrix.shape的输出是什么? -
输出为 (90, 100)
-
"我有一个代表彩色图像的 numpy 2d 矩阵" 如果您知道此彩色图像的原始形状,可以使用
np.reshape()将其转换为 3D 数组 -
new_img = np.reshape(img,(rows,cols/3,3) -
它给出了一个错误:ValueError: cannot reshape array of size 9000 into shape (90,33,3) in this line: new_img = np.reshape(new_img_tmp,(int(new_img_tmp.shape[0 ]), int(new_img_tmp.shape[1]/3),3))