OpenCV中L * a * b *颜色空间范围的负值

时间:2018-09-06 07:53:23

标签: python opencv

我目前正在重新研究Gejima,Zhang和Nagata的研究,该研究的标题是使用L a b *彩色图像处理对番茄品质的成熟度判断。我将OpenCV用于图像处理部分。

从本文来看,L a b *颜色空间中的a *可以为负值,而在OpenCV中,它的范围为0-255,以使其成为8位无符号整数。如何获得与L a b *相同的读数?

我提取了感兴趣的区域,即番茄,将ROI中的所有a *相加,然后除以所有像素的数量。但是,这仍然会给出错误的结果,因为OpenCV中L a b *颜色空间中a *的范围是255,并且不能像本文中那样为负数。此外,他们的论文中的G(36)是什么意思?我已经在互联网上搜索了所有内容,但找不到。

1 个答案:

答案 0 :(得分:0)

如OpenCV docs中所述,LAB范围将取决于原始图像的类型(uint8,float32等)。

要实现目标,您需要确保原始图像为float32。

import cv2
import numpy as np

img = cv2.imread("1.jpeg", cv2.IMREAD_COLOR)
img = img.astype('float32')
lab = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)
lab = np.asarray(lab)
print (f'{lab.min()}, {lab.max()}') 

结果:

-107.859375, 100.0
相关问题