【问题标题】:How to convert from MATLAB Lab color scale to OpenCV Lab color scale?如何从 MATLAB Lab 色标转换为 OpenCV Lab 色标?
【发布时间】:2019-03-18 20:28:55
【问题描述】:

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

  1. MATLAB:0

  1. OpenCV:0

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

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

0

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

【问题讨论】:

    标签: c++ matlab opencv image-thresholding lab-color-space


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      • 1970-01-01
      • 2023-04-11
      • 2020-03-16
      相关资源
      最近更新 更多