imcolordiff

Цветовое различие, основанная на CIE94 или CIE2000 стандарте

Описание

пример

dE = imcolordiff(I1,I2) вычисляет различие цветов между двумя изображениями RGB или картами цветов с помощью CIE94 стандарта.

пример

dE = imcolordiff(I1,I2,Name,Value) задает дополнительные аспекты расчета, такие как входы цветовое пространство и стандарт CIE, используя один или несколько аргументы пары "имя-значение".

Примеры

свернуть все

Чтение цветного изображения в рабочую область.

I1 = imread('peppers.png');
imshow(I1)

Figure contains an axes. The axes contains an object of type image.

Измените локальную цветовую контрастность в изображении.

I2 = localcontrast(I1);
imshow(I2)

Figure contains an axes. The axes contains an object of type image.

Вычислите различие цветов изображений, используя стандарт цвета по умолчанию, CIE94.

dE = imcolordiff(I1,I2);

Отобразите различие цветов как изображение. Масштабируйте область значений отображения, чтобы использовать полную область значений пиксельных значений в dE.

imshow(dE,[])

Figure contains an axes. The axes contains an object of type image.

Считывайте и отображайте изображение ткани, окрашенной гемотоксилином и эозином (H&E).

he = imread('hestain.png');
imshow(he)

Figure contains an axes. The axes contains an object of type image.

Преобразуйте изображение в цветовое пространство L * a * b *.

lab = rgb2lab(he);

Сделайте копию изображения, затем увеличьте сигнал канала a *. Красные тона на изображении становятся более насыщенными, в то время как общая яркость изображения и синие тона неизменны.

lab2 = lab;
scaleFactor = 1.1;
lab2(:,:,2) = scaleFactor*lab(:,:,2);

Вычислите различие цветов исходного и улучшенного изображения в цветовом пространстве L * a * b *.

dE = imcolordiff(lab,lab2,'isInputLab',true);

Отобразите различие цветов как изображение. Масштабируйте область значений отображения, чтобы соответствовать области значений значений пикселей в dE. Яркие области указывают на наибольшее цветовое различие и соответствуют розовым областям ткани.

imshow(dE,[])

Figure contains an axes. The axes contains an object of type image.

Задайте два значения цвета RGB.

pureRed = uint8([255,0,0]);
darkRed = uint8([255,10,50]);

Рассчитать различие цветов можно используя стандарт CIEDE2000.

dE = imcolordiff(pureRed,darkRed,"Standard","CIEDE2000")
dE = single
    7.4449

Чтение и отображение изображения ткани RGB.

fabric = imread('fabric.png');
imshow(fabric)

Figure contains an axes. The axes contains an object of type image.

Симулируйте второе изображение ткани путем изменения локальной цветовой контрастности в изображении.

fabric2 = localcontrast(fabric);
imshow(fabric2)

Figure contains an axes. The axes contains an object of type image.

Вычислите различие цветов двух изображений с помощью CIEDE2000 стандарта. Укажите коэффициент яркости и K1 и K2 коэффициенты взвешивания, подходящие для текстиля.

dE = imcolordiff(fabric,fabric2,'Standard','CIEDE2000', ...
    'kL',2,'K1',0.048,'K2',0.014);

Отобразите различие цветов. Масштабируйте область значений отображения до полной области значений пиксельных значений в dE.

imshow(dE,[])

Figure contains an axes. The axes contains an object of type image.

Входные параметры

свернуть все

Первый набор цветовых данных, заданный как m -by n -by-3 числовой массив, представляющий изображение или c -by-3 числовую матрицу, представляющую набор c цветов. I1 и I2 должен быть одинаковым размером со значениями в том же цветовом пространстве.

По умолчанию, imcolordiff функция интерпретирует данные о цвете как значения цвета RGB. Чтобы вычислить различие цветов в цветовом пространстве L * a * b *, задайте 'isInputLab'аргумент как true. Значения цвета L * a * b * могут иметь тип данных single или double только.

Типы данных: single | double | uint8 | uint16

Второй набор цветовых данных, заданный как m -by n -by-3 числовой массив, представляющий изображение или c -by-3 числовую матрицу, представляющую набор c цветов. I1 и I2 должен быть одинаковым размером со значениями в том же цветовом пространстве.

По умолчанию, imcolordiff интерпретирует данные о цвете как значения цвета RGB. Чтобы вычислить различие цветов в цветовом пространстве L * a * b *, задайте 'isInputLab'аргумент как true. Значения цвета L * a * b * могут иметь тип данных single или double только.

Типы данных: single | double | uint8 | uint16

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Standard',"CIEDE2000" вычисляет различие цветов между двумя изображениями RGB с помощью стандарта CIEDE2000.

Стандарт CIE, используемый для вычисления значения различия цветов, заданный как разделенная разделенными запятой парами, состоящая из 'Standard' и одно из следующих значений:

ЗначениеОписание
"CIE94"Стандарт CIE94. Этот стандарт улучшает восприятие неоднородности стандарта CIE76, реализованного в deltaE функция.
"CIEDE2000"Стандарт CIEDE2000. Этот стандарт дополнительно улучшает однородность восприятия за счет пяти дополнительных коррекций: срок вращения оттенка, компенсация нейтральных цветов и компенсация легкости, цветности и оттенка.

Типы данных: char | string

Значения цвета находятся в цветовом пространстве L * a * b *, заданном как разделенная разделенными запятой парами, состоящая из 'isInputLab' и числовое или логическое 0 (false) или 1 (true)..

Коэффициент яркости, заданный как разделенная разделенными запятой парами, состоящая из 'kL' и числовой скаляр. Коэффициент яркости обычно 1 для приложений в графике и 2 для применения в текстиле.

K1 взвешивания, заданный как разделенная разделенными запятой парами, состоящая из 'K1' и числовой скаляр. Весовой коэффициент K1 обычно 0.045 для приложений в графике и 0.048 для применения в текстиле.

K2 взвешивания, заданный как разделенная разделенными запятой парами, состоящая из 'K2' и числовой скаляр. Весовой коэффициент K2 обычно 0.015 для приложений в графике и 0.014 для применения в текстиле.

Выходные аргументы

свернуть все

Различие цветов (дельта E), возвращается как одно из следующего.

  • Матрица m -by n, когда входные данные о цвете I1 и I2 представляют изображения

  • Вектор c -элемента при I1 и I2 представляют набор c цветов

Если I1 или I2 относится к типу данных double, затем dE относится к типу данных double. В противном случае dE относится к типу данных single.

Типы данных: single | double

Совет

  • Чтобы вычислить различия цветов, следующие за CIE76 стандартом, используйте deltaE функция. Эта функция быстрее, чем imcolordiff функция, но менее точная.

Ссылки

[1] Sharma, Gaurav, Wencheng Wu, and Edul N. Dalal, «The CIEDE2000 Color-Difference Formula: Implementation Notes, Addementary Тестовые данные, and Mathematical Observations». Исследование цвета и применение 30, № 1 (февраль 2005): 21-30. https://doi.org/10.1002/col.20070.

Введенный в R2020b
Для просмотра документации необходимо авторизоваться на сайте