Skip to content

Youfffeng/CCMX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CCMX — Camera Colorimeter Correction Database / 相机色度计校正数据库

A community, open database of CCMX-style 3×3 correction matrices that turn a camera into a colorimeter for display measurement. Each correction maps a specific camera's raw RGB to accurate CIE XYZ for a specific display, keyed by (camera device × lens × display).

一个社区开源CCMX 风格 3×3 校正矩阵 数据库,用于把相机当作色度计来测量显示器。 每条校正把某相机的原始 RGB 校正为某显示器下准确的 CIE XYZ,按 (相机设备 × 镜头 × 显示器) 区分。

Tool-agnostic. Any application that uses a camera as a colorimeter can consume these corrections — the format below is self-contained. 与工具无关。任何"用相机当色度计"的应用都可使用这些校正——下述格式自包含。

📷 Scope: fixed-lens cameras only / 适用范围:仅固定镜头相机 A correction is bound to the camera's spectral response. This is stable only for fixed-lens cameras (e.g. phone/tablet cameras), where a per-(model × lens × display) correction is meaningful and shareable. Interchangeable-lens cameras (DSLR/mirrorless) are generally out of scope: each lens alters the transmission spectrum, so a single matrix is not portable across lens/body combinations. 校正与相机的光谱响应绑定,只有固定镜头相机(如手机/平板摄像头)才稳定,按 (机型 × 镜头 × 显示器) 的校正才有意义、可共享。可换镜头相机(单反/微单)一般不在 接收范围:每支镜头都会改变透过光谱,单一矩阵无法在不同镜头/机身组合间通用。


Why / 为什么

A camera's spectral response differs from the CIE standard observer and varies by model, and it reacts differently to each display technology (WOLED / QD-OLED / IPS …). A single generic matrix is not accurate enough, so corrections are calibrated per device and display against a trusted reference instrument (spectroradiometer / colorimeter).

相机的光谱响应不同于 CIE 标准观察者、且因机型而异,并对不同显示技术(WOLED / QD-OLED / IPS …) 表现不同。单一通用矩阵不够准,因此需对参考仪器(光谱仪 / 色度计)按设备与显示分别标定。

⚠️ A 3×3 matrix works for additive displays. For non-additive panels (WRGB OLED, QD-OLED) it is only an approximation and is flagged nonAdditiveWarning=true; those are better served by spectral (CCSS) corrections. 3×3 矩阵对加性显示有效;对非加性面板仅为近似,会标记 nonAdditiveWarning=true


File naming / 文件命名

{deviceIdentifier}_{lensID}_{displayID}.json
e.g.  iPhone17,1_main_PA32UCG.json
  • deviceIdentifier — camera device hardware id (e.g. Apple unameiPhone17,1).
  • lensIDmain / ultrawide / telephoto / front.
  • displayID — identifier of the calibrated display.

Format / 格式

Each file is a JSON bundle. The matrix maps camera linear RGB → absolute XYZ: XYZ ≈ M · max(cameraRGB − blackLevel, 0).

{
  "version": "1.0",
  "deviceIdentifier": "iPhone17,1",
  "deviceModel": "iPhone 16 Pro",
  "calibrationDate": "2026-06-18T10:00:00Z",
  "display": {
    "id": "PA32UCG",
    "name": "ASUS ProArt PA32UCG",
    "manufacturer": "ASUS",
    "displayType": "miniLED"
  },
  "matrices": {
    "main": {
      "row0": [484.37, 78.90, 135.76],
      "row1": [144.97, 335.40, -19.89],
      "row2": [5.59, -107.75, 896.88],
      "cameraIdentifier": "iPhone17,1_main",
      "displayID": "PA32UCG",
      "lensID": "main",
      "calibrationDate": "2026-06-18T10:00:00Z",
      "calibrationISO": 54.0,
      "calibrationExposure": 0.0126953125,
      "validation": { "deltaEMean": 0.67, "deltaEMax": 2.03, "patchCount": 24 },
      "blackLevel": { "offset": [2111.7, 2111.7, 2111.6], "enabled": true }
    }
  },
  "metadata": {
    "displayTechnology": "miniLED",
    "whitePointXY": [0.3127, 0.3290],
    "referenceInstrument": "i1Display Pro",
    "author": "your-handle",
    "license": "CC0",
    "nonAdditiveWarning": false
  }
}

Field notes / 字段说明

  • matrices is keyed by lensID; each entry is one 3×3 (row0/row1/row2) plus optional blackLevel, validation (CIEDE2000) and capture settings.
  • metadata is optional & backward-compatible (older files omit it). displayTechnologywoled | qdOLED | oled | ipsWhiteLED | ipsWideGamut | va | miniLED | other.

Contribute / 如何贡献

  1. Measure patches on the target display with a reference instrument and fit a 3×3 (least squares; validate with CIEDE2000). 用参考仪器逐块测量目标显示并拟合 3×3(最小二乘;CIEDE2000 验证)。
  2. Save a JSON file named per the convention above and fill metadata (author, license — preferably CC0 —, referenceInstrument, displayTechnology). 按规范命名并填写 metadata
  3. Open a Pull Request. 提交 Pull Request。

Submissions are generally accepted only for fixed-lens cameras (e.g. phone cameras). Interchangeable-lens (DSLR/mirrorless) data is out of scope — see Scope above. 一般只接受固定镜头相机(如手机摄像头)的数据;可换镜头(单反/微单)不在范围内,见上文适用范围

Some apps offer an in-app acquisition flow that exports a ready-to-submit JSON. 一些 app 提供应用内采集流程,可直接导出符合规范的 JSON。


Consume / 如何使用

Clone or pull this repo and read the JSON files; map the fields into your own pipeline. 克隆/拉取本仓库并读取 JSON,将字段映射进你自己的流程。

git clone <this-repo-url>
# corrections are flat *.json files at the repo root, named {device}_{lens}_{display}.json
# 校正为仓库根目录的扁平 *.json 文件,命名为 {设备}_{镜头}_{显示}.json

License / 许可

Unless a file's metadata.license states otherwise, corrections here are dedicated to the public domain under CC0 1.0. See LICENSE. 除非文件 metadata.license 另有声明,本仓库校正数据以 CC0 1.0 公共领域奉献,见 LICENSE

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors