我在从 python 中的现有二维数组创建灰度图像时遇到问题。

假设我有一个二维数组,维度为 504x896 的 X 数据类型为 unit8。我怎样才能从这个二维数组创建一个灰度图像? OpenCV 会为其提供功能还是必须包含其他图像处理库?

我试过这个,但由于某种原因它不起作用。给定一个二维数组 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)

最佳答案

这应该按预期工作。我使用 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)

关于python - 如何从python中的现有二维数组数据创建灰度图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37904078/

10-17 00:38