我在使用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)
答案 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)