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

2024-04-29 14:50:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在重新研究Gejima,Zhang和Nagata的研究,题目是用Lab*彩色图像处理判断番茄品质成熟程度。我使用OpenCV作为图像处理部分。在

本文指出,在Lab*颜色空间中,a*可以是负值,而在OpenCV中,a*的范围是0-255,以便变成8位无符号整数。我怎么能得到和他们一样的Lab*的读数呢?在

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


Tags: 颜色lab符号空间opencv图像处理彩色图像番茄
1条回答
网友
1楼 · 发布于 2024-04-29 14:50:09

如OpenCVdocs中所述,LAB range将取决于原始图像的类型(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()}') 

结果:

^{pr2}$

相关问题 更多 >