Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实验室和灰度之间的Python OpenCV颜色空间差异_Python_Opencv_Image Processing_Lab Color Space - Fatal编程技术网

实验室和灰度之间的Python OpenCV颜色空间差异

实验室和灰度之间的Python OpenCV颜色空间差异,python,opencv,image-processing,lab-color-space,Python,Opencv,Image Processing,Lab Color Space,我的理解是,当将图像从BGR转换到LAB时,L分量应该表示图像的灰度分量。但是,当我从BGR转换为灰度时,预期值不匹配。比如说, img1 = cv2.cvtColor(img, cv2.COLOR_BGR2LAB) print img1[0][0] img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) print img2[0][0] 在我的实验室图像中,第一个像素产生[168 133 162

我的理解是,当将图像从BGR转换到LAB时,L分量应该表示图像的灰度分量。但是,当我从BGR转换为灰度时,预期值不匹配。比如说,

        img1 = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)
        print img1[0][0]
        img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        print img2[0][0]
在我的实验室图像中,第一个像素产生[168 133 162],而第二个像素产生159。我的印象是,它们应该在某种程度上是等价的(这一点由于没有颜色_LAB2GRAY常数而得到加强)

有人能解释一下为什么会这样吗?是我对实验室的理解不正确,还是我只是误用了代码中的某些内容


如果它们确实不同,那么使用哪个更好?我的应用程序的其余部分是在实验室模型中操作图像,因此我尝试使用L分量作为灰度基线,但它的某些区域看起来比它们应该的亮。。。。与BGR2格雷场景不同。想法?

灰色=0.299R+0.587G+0.114B

但是从RGB到LAB的L通道的转换是不同的。(这是一个非线性函数)

可以找到精确的转换

实验室转换的非线性解释了你问题的最后一部分