我正在尝试使用 C++ 中的 openCV 加载 CIE L a b* 图像。在线我只能找到加载 RGB 图像并将其转换为 LAB 图像的示例,但我已经有了 LAB 图像,那么如何加载它并访问 L、a 和 b 的值?
我发现的唯一方法是加载 LAB 图像,将其视为 RGB 图像,并使用以下方法将其转换为 Lab 图像:
cvtColor(source, destination, CV_BGR2Lab);
但我认为这不是解决问题的好方法,因为如果我这样做,转换后的图像看起来与原始图像非常不同。
使用测试图像和以下代码:
originalImage = imread(originalImagePath, CV_LOAD_IMAGE_UNCHANGED);
cout << originalImage.type() << endl;
Mat originalImageSplitted[3];
split(originalImage, originalImageSplitted);
cout << originalImageSplitted[0] << endl;
cout << originalImageSplitted[1] << endl;
cout << originalImageSplitted[2] << endl;
我得到结果:
0
[]
[]
[]