exponenta event banner

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-на-n, когда входные цветовые данные I1 и I2 представлять изображения

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

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

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

Совет

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

Ссылки

[1] Шарма, Горэв, Вэньчэн У и Эдул Н. Дэлэл, «формула цветового различия CIEDE2000: примечания внедрения, дополнительные данные испытаний и математические наблюдения». Исследование и применение цвета 30, № 1 (февраль 2005): 21-30. https://doi.org/10.1002/col.20070.

Представлен в R2020b