我正在尝试使用以下代码将图像从BGR转换为灰度格式:
第二种情况的代码(在这里创建自定义
img = cv2.imread('path//to//image//file')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
这似乎工作正常:我检查了img
变量的数据类型,结果是numpy ndarray,形状为(100,80,3)
。但是,如果我提供一个本机numpy ndarray数据类型的图像,并具有与cvtColor
函数输入相同的尺寸,则会出现以下错误:
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)
能有人澄清一下这个错误的原因以及如何纠正它吗?
cv2.COLOR_GRAY2RGB
将一个1通道的.tif文件转换为RGB格式,但是出现了以下错误:frame = np.array(frame, dtype=np.uint8) TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
为什么会这样? - just_learning