使用cv2进行颜色空间转换



我正在从cv迁移到cv2,并且很难找到cv.CvtColor函数的等价物。

我在文档中读到cv2.cvtColor的存在,但我不知道如何使用第三个参数。

cv2.CV_BGR2Lab不存在。cv2.CV2_BGR2Lab也没有,当我使用cv.CV_BGR2Lab时,我得到的只是一个错误:

cv2.cvtColor(img, img, cv.CV_BGR2Lab)

TypeError: only length-1 arrays can be converted to Python scalars

产生问题的一段简单代码:

img = cv2.imread(path)
cv2.cvtColor(img, img, cv.CV_BGR2Lab)

我认为参数的顺序不对。cv2文档按以下顺序显示它们:cv2.cvtColor(src, code[, dst[, dstCn]]),这与cv中的顺序不同,其中的顺序为:cv.CvtColor(src, dst, code)

因此,基于此,再加上另一个答案中关于颜色转换常数名称更改的信息,您需要使用:

cv2.cvtColor(img, cv2.COLOR_BGR2LAB, img)

您正在寻找这个常量

cv.CV_BGR2Lab --> cv2.COLOR_BGR2LAB

所有其他用于颜色转换的常数都遵循类似的模式

cv.CV_<CONSTANT> --> cv2.COLOR_<CONSTANT>

我仍然没有找到一个好的来源(甚至是文档(来确定如何翻译常量。

更新:有关常量的详细信息,请参阅此处和此处的讨论。

相关内容

  • 没有找到相关文章

最新更新