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

zyfwsgd6  于 2022-11-30  发布在  Python
关注(0)|答案(1)|浏览(146)

我在python中从现有的2D数组创建灰度图像时遇到问题。
假设我有一个2D数组,X在维度504x896的数据类型是unit8。我如何从这个2D数组创建灰度图像?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)
58wvjzkj

58wvjzkj1#

这应该和预期的一样。我已经使用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)

相关问题