Python OpenCV中L*a*b*颜色空间范围的负值
我目前正在重做Gejima、Zhang和Nagata的研究,题为“利用Lab*彩色图像处理对番茄品质成熟度的判断”。我使用OpenCV进行图像处理部分 从论文中可以看出,Lab*颜色空间中的*可以有负值,而在OpenCV中,它的范围为0-255,可以变成8位无符号整数。我怎么能得到和他们一样的实验室读数 我提取了感兴趣的区域,即番茄,求出ROI中所有的a*之和,然后除以所有像素的数量。但这仍然会给出错误的结果,因为OpenCV中实验室*颜色空间中的a*范围是255,并且不能像论文中那样为负数。此外,在他们的论文中,G(36)是什么意思?我在互联网上搜索了它,但找不到它 如OpenCV中所述,实验室范围将取决于原始图像的类型(uint8、float32等) 为了实现您的目标,您需要确保原始图像是浮动的Python OpenCV中L*a*b*颜色空间范围的负值,python,opencv,Python,Opencv,我目前正在重做Gejima、Zhang和Nagata的研究,题为“利用Lab*彩色图像处理对番茄品质成熟度的判断”。我使用OpenCV进行图像处理部分 从论文中可以看出,Lab*颜色空间中的*可以有负值,而在OpenCV中,它的范围为0-255,可以变成8位无符号整数。我怎么能得到和他们一样的实验室读数 我提取了感兴趣的区域,即番茄,求出ROI中所有的a*之和,然后除以所有像素的数量。但这仍然会给出错误的结果,因为OpenCV中实验室*颜色空间中的a*范围是255,并且不能像论文中那样为负数。此
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
找到答案的最好方法是阅读文档:D,它告诉你实验室颜色空间的范围将如何。。。而且,它还告诉您,如果源图像是32位图像,结果将是您想要的(负片等等)。。。在更改颜色空间之前将其转换为浮动。我认为StackOverflow不是询问特定纸张的最佳场所。如果不读它,我猜G(36)是绿色的阈值。