Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Integrate ICC v5 / iccMAX Support into OpenCV

Open
#1,153 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
20/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
python

Research direction

The issue names no files, tests, or entry points. First determine whether ICC v5/iccMAX support belongs in this Python packaging toolchain or in upstream OpenCV, then seek a scoped implementation plan covering the requested profile handling, bindings, and backward compatibility before defining completion.

Written by the indexing model from the issue text.

Description

Dear OpenCV Maintainers,

I am writing to propose an enhancement to OpenCV’s color management capabilities: the integration of ICC v5 / iccMAX profile support. As imaging workflows increasingly rely on wide-gamut, high-dynamic-range content, modern color management standards are essential for accurate processing, visualization, and output.

Motivation
Current OpenCV workflows typically rely on ICC v2/v4 profiles and manual gamma approximations for wide-gamut color spaces (e.g., ProPhoto RGB, ROMM RGB) or HDR content. This approach has several limitations:

Limited channel support: Only 3-channel RGB is fully supported; multi-channel or spectral data cannot be handled.

Approximate gamma and clipping: Wide-gamut transforms require manual gamma adjustments, introducing artifacts and loss of fidelity.

No perceptual color appearance modeling: Viewing conditions, adaptation, and flare corrections are not considered.

Limited HDR support: Floating-point and extended dynamic range are only partially implemented, restricting true HDR workflows.

Proposed Upgrade
Integrate ICC v5 / iccMAX profile handling directly into OpenCV, leveraging:

Multi-channel LUTs and transforms: Accurate conversion between wide-gamut color spaces and high-bit-depth or spectral data.

High-precision floating-point processing: Maintain HDR, linear-light, and extended dynamic range data throughout pipelines.

Color appearance models (CAM02 / CAM16): Support perceptual transforms for soft-proofing and viewing condition adaptation.

Backward compatibility: Ensure existing workflows using v2/v4 profiles remain functional.

Benefits

Professional color accuracy: OpenCV would handle modern cinema cameras (RED, Arri, Blackmagic) and high-end photography workflows accurately.

HDR and wide-gamut support: True representation of HDR content without manual approximations.

Scientific and industrial applications: Enhanced precision for research, medical imaging, and machine vision systems.

Enhanced Python and C++ pipelines: Enable real-time processing of color-managed content for computer vision, machine learning, and display.

Improved dataset quality: Training datasets generated in OpenCV would more accurately reflect real-world color and lighting, improving model generalization.

Suggested Implementation

Integrate an ICC v5 parser and transform engine (e.g., leverage DemoIccMax / iccDEV).

Provide Python bindings for profile application in cv2.cvtColor() or a new cv2.colorProfileTransform() function.

Maintain internal floating-point representation for linear color processing.

Add support for perceptual adaptation and multi-channel LUTs.

Adding ICC v5 / iccMAX support would bring OpenCV to parity with professional imaging software and ensure Python, C++, and GPU-based pipelines can process true wide-gamut HDR content accurately. This upgrade would significantly benefit research, industrial, and machine vision applications, positioning OpenCV as a robust choice for modern imaging workflows.
Integrating the iccMAX ICC file by default

Thank you for considering this enhancement.
https://www.color.org/iccmax.xalter

Dominant language
Python
Stars
5.4k
Forks
1k
Avg merge
22h 17m
Merged PRs (30d)
3

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from opencv/opencv-python

All issues in opencv/opencv-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.