gpt4 book ai didi

c++ - 如何将 MATLAB Lab 色标转换为 OpenCV Lab 色标?

转载 作者:行者123 更新时间:2023-11-28 01:28:20 26 4
gpt4 key购买 nike

我正在尝试使用 Color Thresholder App 在 MATLAB 中对颜色进行采样然后在 OpenCV 中使用 L * a * b 输出。但似乎存在规模不匹配。以下是 MATLAB 和 OpenCV 中的 L * a * b 尺度:

  1. MATLAB:0 <= L <= 100; -100 <= 一个 <= 100;和 -100 <= b <= 100

MATLAB Lab Scale

  1. OpenCV:0 <= L <= 100; -127 <= 一个 <= 127;和 -127 <= b <= 127

根据这两个来源:Source 1 ;和 Source 2

对于 OpenCV 中的 8 位图像,我们似乎需要以下 L * a * b 范围:

0 <= L <= 255; 0 <= 一个 <= 255;和 0 <= b <= 255

我们如何将 8 位图像的 L * a * b 色标从 MATLAB 转换到 OpenCV?

最佳答案

Matlab 在其图像处理工具箱中使用国际色彩联盟的颜色表示规范。 ICC 配置文件规范几乎普遍用于颜色规范和转换。

ICC Lab 指定 LAB 用于各种分辨率的配置文件转换空间。对于 8 位,使用无符号的 8 位值。 L* 映射为 0->0 和 100->255。对于 a* 和 b*,值限制在 -128 和 +127 之间。因此,实际编码将 128 添加到 a* 和 b* 以产生介于 0 和 255 之间的无符号值。

可以在此处规范的第 6.3.4.2 节的表 12 和 13 中找到这些和其他更大的位大小的表示:

http://color.org/specification/ICC1v43_2010-12.pdf

大多数程序(例如 Photoshop、Tiff 文件等)都使用 ICC 格式。此外,Matlab 的函数包括各种转换函数,例如 lab2uint8(lab),可用于将平点 Lab 值转换为固定大小的正确表示形式,例如无符号 8 位整数。

关于c++ - 如何将 MATLAB Lab 色标转换为 OpenCV Lab 色标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52799319/

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