您的代码可以固定如下:
import numpy as np, cvvis = np.zeros((384, 836), np.float32)h,w = vis.shapevis2 = cv.CreateMat(h, w, cv.CV_32FC3)vis0 = cv.fromarray(vis)cv.CvtColor(vis0, vis2, cv.CV_GRAY2BGR)
简短说明:
np.uint32
数据类型不受OpenCV的支持(它支持uint8
,int8
,uint16
,int16
,int32
,float32
,float64
)cv.CvtColor
无法处理numpy数组,因此必须将两个参数都转换为OpenCV类型。cv.fromarray
执行此转换。- 的两个参数
cv.CvtColor
必须具有相同的深度。因此,我将源类型更改为32bit float以匹配destination。
我也建议您使用较新版本的OpenCV python API,因为它使用numpy数组作为主要数据类型:
import numpy as np, cv2vis = np.zeros((384, 836), np.float32)vis2 = cv2.cvtColor(vis, cv2.COLOR_GRAY2BGR)



