使用cv2进行色彩空间转换

Leo*_*Leo 1 python opencv

我正在迁移cvcv2,我很难找到相同的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)
Run Code Online (Sandbox Code Playgroud)

mar*_*eau 6

我认为你的参数排序错误.该CV2文档表明他们在这个顺序:cv2.cvtColor(src, code[, dst[, dstCn]]),这是由它在不同的品种,其中的顺序是:cv.CvtColor(src, dst, code).

因此,基于此,以及关于颜色转换常量名称更改的其他答案中的信息,您需要使用:

cv2.cvtColor(img, cv2.COLOR_BGR2LAB, img)
Run Code Online (Sandbox Code Playgroud)


cra*_*tad 5

你在寻找这个常数

cv.CV_BGR2Lab --> cv2.COLOR_BGR2LAB
Run Code Online (Sandbox Code Playgroud)

并且所有其他颜色转换常量都遵循类似的模式

cv.CV_<CONSTANT> --> cv2.COLOR_<CONSTANT>
Run Code Online (Sandbox Code Playgroud)

我还没有找到一个很好的来源(甚至文档)来确定常量是如何翻译的.

更新:有关常量的更多信息, 请参阅此处此处的讨论.