【发布时间】:2018-05-13 18:56:56
【问题描述】:
我正在尝试使用以下代码将图像从 BGR 转换为灰度格式:
img = cv2.imread('path//to//image//file')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
这似乎工作正常:我检查了 img 变量的数据类型,结果是 numpy ndarray 和形状是 (100,80,3)。但是,如果我给出与 cvtColor 函数的输入具有相同尺寸的原生 numpy ndarray 数据类型的图像,则会出现以下错误:
Error: Assertion failed (depth == 0 || depth == 2 || depth == 5) in cv::cvtColor, file D:\Build\OpenCV\opencv-3.4.1\modules\imgproc\src\color.cpp, line 11109
cv2.error: OpenCV(3.4.1) D:\Build\OpenCV\opencv-3.4.1\modules\imgproc\src\color.cpp:11109: error: (-215) depth == 0 || depth == 2 || depth == 5 in function cv::cvtColor
第二种情况的代码是(在这里自定义np.ndarray):
img = np.full((100,80,3), 12)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
谁能澄清这个错误的原因以及如何纠正它?
【问题讨论】:
标签: python opencv image-processing