ColorDistance[c1,c2]
色指示子 c1と c2の間のおよその知覚距離を与える.
ColorDistance[list,c]
list の要素と c の間の色距離を与える.
ColorDistance[list1,list2]
list1と list2の対応する要素間の色距離を与える.
ColorDistance[image,c]
画素値が image 中の画素と色 c の間の色距離である画像を与える.
ColorDistance[image1,image2]
image1と image2の間の画素ごとの色距離を与える画像を与える.
ColorDistance
ColorDistance[c1,c2]
色指示子 c1と c2の間のおよその知覚距離を与える.
ColorDistance[list,c]
list の要素と c の間の色距離を与える.
ColorDistance[list1,list2]
list1と list2の対応する要素間の色距離を与える.
ColorDistance[image,c]
画素値が image 中の画素と色 c の間の色距離である画像を与える.
ColorDistance[image1,image2]
image1と image2の間の画素ごとの色距離を与える画像を与える.
詳細とオプション
- 色距離は,色差としても知られるもので,視覚的,知覚的な色の違いの測度を与える.知覚的に似ている色の差は小さい.
- ColorDistanceは,2つの色の間の距離をLABColor色空間における2つの色ベクトルの間のユークリッド距離として計算する.
- アルファチャンネルは色距離の計算では無視される.
- ColorDistanceは,任意の2Dおよび3D画像に使うことができる.
- ColorDistance[image,…]のとき,色距離は imageと同じ次元の実数型の画像として返される.
- ColorDistance[image1,image2]のとき,image1および image2は中心揃えで,重なり合う画像についての色距離の画像が返される.
- ColorDistanceはDistanceFunctionオプションをサポートする.次は使用可能な設定である.
-
"CIE76" LABColor空間におけるユークリッド距離(デフォルト) "CIE94" LCHColorで定義される色の違い "CIE2000" いくつかの訂正が入ったCIE94 {"CMC",{l,c}} 明るさ l,彩度 c のパラメータを伴うCMC (Color Measurement Committee)の測定基準 "DeltaL" lLCHColorにおける輝度の差 "DeltaC" LCHColorにおける彩度の差 "DeltaH" LCHColorにおける色相に基づいた差 f Labの値の2つのリストを与えられた関数 f - "CMC"測定基準では,一般的に使われるパラメータは,知覚については
,許容性については
である.指定がない場合は
が使われる.
例題
すべて開く すべて閉じる例 (2)
スコープ (5)
ColorDistance[Gray, LABColor[.5, .5, 0]]ColorDistance[{RGBColor[0.18077129219442112, 0.15154331458502068, 0.7644876344337121], RGBColor[0.37570945003037726, 0.004125067713668384, 0.2969503457671252], RGBColor[0.45339135078104875, 0.17876965775449882, 0.5229579155791375], RGBColor[0.21616382900417186, 0.7084611599452941, 0.9442344792776058], RGBColor[0.27418805094023435, 0.6676801751797845, 0.7841343593807673]}, RGBColor[0.7691099329143689, 0.3894376342272303, 0.8087557327930035]]ColorDistance[{RGBColor[0.18077129219442112, 0.15154331458502068, 0.7644876344337121], RGBColor[0.37570945003037726, 0.004125067713668384, 0.2969503457671252], RGBColor[0.45339135078104875, 0.17876965775449882, 0.5229579155791375], RGBColor[0.21616382900417186, 0.7084611599452941, 0.9442344792776058], RGBColor[0.27418805094023435, 0.6676801751797845, 0.7841343593807673]}, {RGBColor[0.7691099329143689, 0.3894376342272303, 0.8087557327930035], RGBColor[0.2850187923162437, 0.33077177352188514, 0.13868103167491896], RGBColor[0.4556483766455912, 0.5813490503852354, 0.2804828580204961], RGBColor[0.2899288571808647, 0.3138074861832185, 0.4691678374570174], RGBColor[0.48990820234332033, 0.15952412128896754, 0.0013851383895859826]}]ColorDistance[[image], [image]]ColorDistance[[image], [image]]オプション (8)
DistanceFunction (8)
デフォルトで,"CIE76"(ΔEa*b*の表記あり)が使われる:
ColorDistance[Red, Blue]これはLABColor成分のEuclideanDistanceに相当する:
{c1, c2} = ColorConvert[#, "LAB"]& /@ {Red, Blue};EuclideanDistance[List@@c1, List@@c2]
色距離の計算に"CIE94"(ΔE94の表記あり)尺度を使う:
ColorDistance[Red, Blue, DistanceFunction -> "CIE94"]ColorDistance[Blue, Red, DistanceFunction -> "CIE94"]色距離の計算に"CIE2000"("CIEDE2000"あるいはΔE00の表記あり)尺度を使う:
ColorDistance[Red, Blue, DistanceFunction -> "CIE2000"]ColorDistance[Blue, Red, DistanceFunction -> "CIE2000"]ColorDistance[Red, Blue, DistanceFunction -> "CMC"]ColorDistance[Red, Blue, DistanceFunction -> "DeltaL"]
ColorDistance[Red, Blue, DistanceFunction -> "DeltaC"]どちらもNorm[{
}]として計算された,2つの彩度間の距離:
ColorDistance[Red, Blue, DistanceFunction -> "DeltaH"]ColorDistance[Red, Blue, DistanceFunction -> (Abs[#1[[1]] - #2[[1]]]&)]アプリケーション (6)
img = [image];mask = ColorNegate@ImageAdjust@ColorDistance[Red, img]ImageCompose[ColorConvert[img, "Grayscale"], SetAlphaChannel[img, mask]]δ = ColorDistance[[image], {RGBColor[239/255, 11/17, 3/17], RGBColor[32/85, 47/85, 58/255], RGBColor[62/85, 47/255, 43/255]}];
Binarize[ImageAdjust[#], {0, .2}]& /@ δColorDistance[[image], [image]]i = [image];ColorDistance[i, Red]DistanceFunction"DeltaH"を使って色合いの違いのみを測る:
ColorDistance[i, Red, DistanceFunction -> "DeltaH"]colors = DominantColors[[image], 50];FindClusters[colors, 4]//Columnref = Blue;
colors = RandomColor[20]colors[[Ordering[ColorDistance[colors, ref, DistanceFunction -> "CIE2000"]]]]Sort[colors]特性と関係 (8)
ColorDistanceはLABColor空間の色のEuclideanDistanceと等価である:
{c1, c2} = {RGBColor[1, 0, 0], RGBColor[0, 1, 0]};ColorDistance[c1, c2]{labc1, labc2} = List@@@(ColorConvert[#, LABColor]& /@ {c1, c2});EuclideanDistance[labc1, labc2]color = RGBColor[1, 0, 0];ColorDistance[color, color]ColorDistance[color, ColorConvert[color, XYZColor]]この距離は,色が新たな色空間では使えない場合は非零かもしれない点に注意:
lab = LABColor[0, 0.5, 1.5];ColorDistance[lab, ColorConvert[lab, CMYKColor]]ColorDistance[RGBColor[1, 0, 0, 1], RGBColor[1, 0, 0, .3]]RGBカラーについて,各メソッドについてよく使われる距離範囲は次の通りである:
colors = With[{δ = .2}, Flatten[Table[RGBColor[r, g, b], {r, 0, 1, δ}, {g, 0, 1, δ}, {b, 0, 1, δ}]]];
colors = Cases[colors, RGBColor[0. | 1., _, _] | RGBColor[_, 0. | 1., _] | RGBColor[_, _, 0. | 1.]];
pairs = Transpose@Flatten[Outer[List, colors, colors], 1];distanceNames = {"CIE76", "CIE94", "CIE2000", "CMC", "DeltaL", "DeltaC", "DeltaH"};
computedDist =
ColorDistance[Sequence@@pairs, DistanceFunction -> #]& /@ distanceNames;MapThread[Rule, {distanceNames, MinMax /@ computedDist}]//ColumnColorDistance[Red, Black, DistanceFunction -> #]& /@ {"CIE94", "CMC"}
ColorDistance[Black, Red, DistanceFunction -> #]& /@ {"CIE94", "CMC"}"CIE94","CIE2000","CMC","DeltaH"は,常に三角不等式を満足するわけではない:
{c1, c2, c3} = {LABColor[0.13746501016460688, -0.3385073806178629, -0.37154877167601175], LABColor[0.5569755775933762, -0.13467171094537056, 0.5119240857106018], LABColor[0.9568310647628457, 0.18081259166998453, 1.274230978258097]};Table[
ColorDistance[c1, c3, DistanceFunction -> d] ≤ ColorDistance[c1, c2, DistanceFunction -> d] + ColorDistance[c2, c3, DistanceFunction -> d],
{d, {"CIE94", "CIE2000", "CMC", "DeltaH"}}]三角不等式を満足するシミュレーションによる周波数は,指定された距離に依存する:
colors = RandomColor[LABColor, {3, 20000}];simulateTriangularInequality[dist_] := Apply[Thread[ColorDistance[#, #3, DistanceFunction -> dist] ≤ ColorDistance[#, #2, DistanceFunction -> dist] + ColorDistance[#2, #3, DistanceFunction -> dist]]&, colors]//Tally//Sort;simulateTriangularInequality["CIE94"]simulateTriangularInequality["CIE2000"]simulateTriangularInequality["CMC"]simulateTriangularInequality["DeltaH"]"CIE2000"は,単純なLab距離について多くの点を改良した,最新標準の一つである.これは,"CIE76"や"CIE94"と比較した場合に,感覚的により正確である:
しかし,より古い測度と比較した場合,"CIE2000"は,計算上はより高価である:
image = RandomImage[1, {1500, 1500}];
color = RandomColor[];ColorDistance[image, color, DistanceFunction -> "CIE76"]//AbsoluteTiming//FirstColorDistance[image, color, DistanceFunction -> "CIE94"]//AbsoluteTiming//FirstColorDistance[image, color, DistanceFunction -> "CIE2000"]//AbsoluteTiming//FirstImageDistance は,デフォルトで,RGB空間における2つの画像間のユークリッド距離を計算する:
images = {ConstantImage[Red], ConstantImage[LightRed]};ImageDistance@@imagesEuclideanDistance[Flatten@ImageData[#1], Flatten@ImageData[#2]]&@@ColorConvert[images, "RGB"]ColorDistanceは,デフォルトで,LAB空間における2つの画素間のユークリッド距離を計算する:
Sqrt@Total[ImageData[ColorDistance@@images] ^ 2, 2]EuclideanDistance[Flatten@ImageData[#1], Flatten@ImageData[#2]]&@@ColorConvert[images, "LAB"]ColorDistanceは画像の中央領域間の距離を異なる次元で返す:
ColorDistance[[image], [image]]2つの画像間の距離は重複する領域が一致する場合は同じように0になることがある:
ColorDistance[[image], [image]]ImageMeasurements[%, "Max"]関連するガイド
-
▪
- 色 ▪
- 距離と類似度の測定基準 ▪
- 色の処理
テキスト
Wolfram Research (2014), ColorDistance, Wolfram言語関数, https://reference.wolfram.com/language/ref/ColorDistance.html (2015年に更新).
CMS
Wolfram Language. 2014. "ColorDistance." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2015. https://reference.wolfram.com/language/ref/ColorDistance.html.
APA
Wolfram Language. (2014). ColorDistance. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ColorDistance.html
BibTeX
@misc{reference.wolfram_2026_colordistance, author="Wolfram Research", title="{ColorDistance}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/ColorDistance.html}", note=[Accessed: 07-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_colordistance, organization={Wolfram Research}, title={ColorDistance}, year={2015}, url={https://reference.wolfram.com/language/ref/ColorDistance.html}, note=[Accessed: 07-September-2026]}
