实验室和灰度之间的Python OpenCV颜色空间差异
我的理解是,当将图像从BGR转换到LAB时,L分量应该表示图像的灰度分量。但是,当我从BGR转换为灰度时,预期值不匹配。比如说,实验室和灰度之间的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
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通道的转换是不同的。(这是一个非线性函数) 可以找到精确的转换 实验室转换的非线性解释了你问题的最后一部分