カラープロファイル

カラープロファイルとは?

パソコンのディスプレイやプリンタ、デジタルカメラ等、色を取り扱う数多くのデバイスが身近にありますが、これらのデバイスの特性を考慮し、元の環境(作成した環境)の色を可能な限り再現するために考えられたものがカラープロファイル(Color Profile)です。

デジカメで撮影した画像を異なるディスプレイで表示した際、見え方が異なる(片方はより鮮やかに見える等)といった経験をされたことはありませんか?これはディスプレイによって表現可能な色域が異なるため、元画像の色を忠実に再現できなかった等の可能性が考えられます。
このようなデバイス依存を無くし、2つのディスプレイで同じように元画像を表示するためにはカラープロファイルが必要になります。

カラープロファイルは、具体的にはディスプレイ等のデバイスの特性を含むデータになります。このとき、デバイスに依存するRGBやCMYKといった相対色を基準にするのではなく、Labといったデバイス非依存の絶対色を基準としてデータが保存されます。従って、ディスプレイやプリンタといった画像出力デバイスは、このプロファイルを基に自デバイスの特性に合わせて画像データを変換して出力します。

カラープロファイルは様々なデバイス間で理解できる、共通のフォーマットで作成されている必要があるために標準化が行われています。現在はICC(International Color Consortium)によって策定されたICCプロファイルが主に利用されており、このフォーマットに基づいて各団体やデバイスメーカーがプロファイルを提供しています。

カラープロファイルを利用した色変換

カラープロファイルを利用した色変換

色空間について

カラープロファイルについて概要を説明しましたが、ここでは色を表現するための方法として、色空間と呼ばれる考え方について説明します。最も身近な色空間としてはRGBが挙げられますが、これは光の三原色である赤、緑、青の3つの色の数値を変化させることで様々な色を表現します。RGBによる標準規格としてはsRGB(standard RGB)があり、ディスプレイやデジカメ等で良く用いられている色空間になります。但し、RGBは相対色と呼ばれており、例えば発色特性が異なるディスプレイが2台あった場合、それぞれで異なる色に見えてしまう可能性があります。

様々な色の構成方法(RGB色空間)

様々な色の構成方法(RGB色空間)

また、プリンタや印刷業界ではCMYKが良く用いられます。CMYKは減法混色に基づく色の表現方法で、シアン、マゼンタ、イエロー、黒の4色で構成されます。印刷物はディスプレイのように発光していないので、減法混色が採用されています。基本的にはシアン、マゼンタ、イエローの3色で黒も表現可能ですが、色を重ねると色の沈みが生じやすいことや、インクの速乾性の問題、消費量の問題等から黒が加えられて4色になっているようです。このCMYKもRGBと同様に相対色となります。

また、RGBとCMYKを比較した場合、CMYKはRGBに比べて表現できる色の範囲が狭いので、注意が必要です。

一方、デバイス特性に依存せずに色を明確に示すことができる色空間も存在します。L*a*b色空間などが該当し、相対色に対して絶対色と呼ばれています。L*a*bはできるだけ人間の感覚に近い均等な色空間として考案されたもので、補色空間の一種となります。L*は明るさを表し、a*b*で色を表現します。A*の値がプラス方向になれば赤みが増し、マイナス方向になれば緑が強くなります。また、b*の値がプラス方向に増していくと黄色が強くなり、マイナス方向で青みが強くなります。

様々な色の構成方法(L*a*b*色空間)

様々な色の構成方法(L*a*b*色空間)

RGB, CMYK, L*a*b*といった色空間について紹介してきましたが、これら以外にも目的や用途に応じて様々な種類があります。 注意すべき点としては、それぞれの色空間で表現できる色域が異なることです。例えば、RGBで表現できていた彩度の高い色がCMYKでは表現できず、変換後にくすみが出たりする可能性があります。この場合、CMYKで表現できる色に置き換えられることになりますが、表現できる範囲はデバイスによって異なるため、変換にはカラープロファイルが用いられることになります。

色度図

各色空間が表現できる色の範囲(色域)を体系的に表す方法のひとつとして,XYZ表色系があります。これは国際照明委員会(CIE)が定めた色の表示基準であり、RGBでは表現できない色域を数学的に回避するために考えられた表色系です。(RGBでは、青紫~黄緑系の色を表現する際にRGBの係数に負の値が生じる問題がありました)

XYZは3刺激値と呼ばれ、それぞれが概ねRGBに対応した色であると考えることができますが、RGBという三原色で再現できない色(虚色)も表現可能としています。

一方、XYZ表色系ではXYZの3刺激値は虚色の混合量であるため、人がXYZの値を見てもどのような色であるかを判断することが困難であるという問題がありました。そこで、XYZの3刺激値の比率を用いたxyz表色系が考えられました。ここで、xyzは下記のような計算式で表すことができます。

\[ x=\frac{X} {X+Y+Z}, y=\frac{Y} {X+Y+Z}, z=\frac{Z} {X+Y+Z} \]

このxyz表色系を使い、xを横軸に、yを横軸として色を表した図をxy色度図といいます。明るさに相当する情報は含まれませんが、どのような色であるかを把握するには十分な情報があり、各色空間で表現できる色域を示す基準として広く使われています。

色度図

色度図

テストチャート

色の再現性の評価や階調・解像力の性能評価にはテストチャートが用いられます。色の再現性の評価であれば多数の濃度パッチを配列したテストチャートが用いられ、解像力の性能評価であれば白黒の細線を放射状に繰り返したようなテストチャートが用いられますが、複数の指標を一度に測定できるようなチャートも存在しています。

以下に示すImatest® eSFRテストチャートは単一のテストチャートを利用して鮮鋭度、色収差、ノイズ、シーン照明、色精度等の測定ができます。

Imatest eSFRテストチャート

Imatest eSFRテストチャート

このチャートには目的に応じたパッチの場所を正確に捉えるためのレジストレーションマーカーが備わっており、利用者側はこのマーカー(黒と白の格子縞の4つの円)を検出し、所望の領域を定義します。

以下は色精度を測定した例ですが、下図左側はチャートからカラーパッチを検出し、各パッチにラベルを付けた図となり、右側は測定値と基準値を比較した結果となります。各パッチにはさらに内側に正方形の領域が示されていますが、この領域の色が測定色、外側が基準色を表しています。ΔEは精度を表しており、測定色と基準色の間のユークリッド距離を表したもので、精度が高いほど数値は小さくなります。

チャートを利用した色精度の測定

チャートを利用した色精度の測定

MATLABにおけるカラープロファイル・色空間の取り扱い

上述の通り、意図した通りの色を表現するためにはカラープロファイルを適切に取り扱い、各デバイスで扱うことのできる色空間に変換を行う必要があります。MATLABは画像処理系のオプション製品 – Image Processing Toolbox™によって色空間の変換やカラープロファイルの取り扱いがサポートされており、カラープロファイル(ICCプロファイル)の読み込みや書き込み、プロファイルを利用した色空間の変換などをコンパクトな記述で行うことができます。また、本ページでご紹介したImatestテストチャートを利用した画像の評価もサポートされており、チャートからの特定のパッチの抽出や色の精度測定、結果の可視化などを行えます。いずれもプログラミングのご経験が浅い方でも使いやすいようにデザインされており、ヘルプドキュメントを参考にしながらすぐに動かすことができます。

参考: image segmentation, image analysis, image thresholding, image enhancement, image reconstruction, image transform, digital image processing, image processing and computer vision, Steve on Image Processing, edge detection, image registration, affine transformation, lab color

無料の例

画像処理のヒント、手法、およびコード

MATLAB を使用した色のセグメンテーション、画像領域解析、および watershed セグメント化について順を追って紹介します。

例を参照