如何在python中从现有的2D数组数据创建灰度图像

时间:2016-06-19 04:59:51

标签: python opencv image-processing

我在使用python中的现有2D数组创建灰度图像时遇到问题。

假设我有一个2D数组,尺寸为504x896的X数据类型为unit8。如何从这个2D数组创建灰度图像? OpenCV会为它提供一个功能还是我必须包含其他图像处理库?

我试过这个,但由于某种原因它没有用。给定2D数组z

dim = z.shape
h =  dim[0]
w = dim[1]

copy_image = np.zeros((h,w,1), np.uint8)
copy_image = z.copy();
cv2.imwrite("cpImage.bmp",copy_image)

1 个答案:

答案 0 :(得分:0)

这应该按预期工作。我使用Float32作为两个参数cv.CvtColor必须具有相同的深度。

import numpy as np
import cv2
nArray = np.zeros((504, 896), np.float32) #Create the arbitrary input img
h,w = nArray.shape
cArray1 = cv2.CreateMat(h, w, cv2.CV_32FC3)
cArray2 = cv2.fromarray(nArray)
cv2.CvtColor(cArray2, cArray1, cv2.CV_GRAY2BGR)
cv2.imwrite("cpImage.bmp", cArray1)