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中L*a*b*颜色空间范围的负值_Python_Opencv - Fatal编程技术网

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

Python OpenCV中L*a*b*颜色空间范围的负值,python,opencv,Python,Opencv,我目前正在重做Gejima、Zhang和Nagata的研究,题为“利用Lab*彩色图像处理对番茄品质成熟度的判断”。我使用OpenCV进行图像处理部分 从论文中可以看出,Lab*颜色空间中的*可以有负值,而在OpenCV中,它的范围为0-255,可以变成8位无符号整数。我怎么能得到和他们一样的实验室读数 我提取了感兴趣的区域,即番茄,求出ROI中所有的a*之和,然后除以所有像素的数量。但这仍然会给出错误的结果,因为OpenCV中实验室*颜色空间中的a*范围是255,并且不能像论文中那样为负数。此

我目前正在重做Gejima、Zhang和Nagata的研究,题为“利用Lab*彩色图像处理对番茄品质成熟度的判断”。我使用OpenCV进行图像处理部分

从论文中可以看出,Lab*颜色空间中的*可以有负值,而在OpenCV中,它的范围为0-255,可以变成8位无符号整数。我怎么能得到和他们一样的实验室读数

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

如OpenCV中所述,实验室范围将取决于原始图像的类型(uint8、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

找到答案的最好方法是阅读文档:D,它告诉你实验室颜色空间的范围将如何。。。而且,它还告诉您,如果源图像是32位图像,结果将是您想要的(负片等等)。。。在更改颜色空间之前将其转换为浮动。我认为StackOverflow不是询问特定纸张的最佳场所。如果不读它,我猜G(36)是绿色的阈值。