gpt4 book ai didi

c++ - CIELab 空间中的颜色输出

转载 作者:太空狗 更新时间:2023-10-29 23:53:48 26 4
gpt4 key购买 nike

为了可视化某些数据,我应该使用着色。也就是说,我处理的 C++ 代码是使用 cairo-graphics 输出的,该函数基于 RGB 空间。另一方面,我处理的数据应该利用 CIELab 色彩空间的“特定片段”。

问题是:使用 C++ 执行此操作的最合适方法是什么?也许某些转换可能仍然依赖于 cairo 提供的 RGB 函数(尽管我怀疑这种替代方法,因为 RGB 是设备相关的)?

最佳答案

OpenCV 有一些内置的颜色转换。您可以使用它们,或将它们用作您自己的颜色转换程序的灵感。参见 the doc about color conversion in OpenCV (cv::cvtColor)

一种可能的使用方式是:

#include <cv.h>
#include <highgui.h>
int main()
{
cv::Mat imgRgb = cv::imread("file.bmp");
cv::Mat imgLab;
cv::cvtColor(imgRgb, imgLab, Cv::CV_BGR2Lab);

//access Lab values
int y = 50;
int x = 20;
double L = imgLab.at<double>(y,x)[0]; //beware the order : openCV treats images as matrixes, thus the y param come first
double a = imgLab.at<double>(y,x)[1];
double b = imgLab.at<double>(y,x)[2];
}

注意:我没有测试或编译这段代码,这只是一个草稿。

关于c++ - CIELab 空间中的颜色输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8969795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com