deltaE

Цветовое различие на основе стандарта CIE76

Описание

пример

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

пример

dE = deltaE(I1,I2,'isInputLab',isLab) также задает, являются ли входные данные о цвете в цветовом пространстве RGB или L*a*b* цветовое пространство.

Примеры

свернуть все

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

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

Вычислите цветовую разность цветов.

dE = deltaE(pureRed,darkRed)
dE = single
    18.6206

Считайте цветное изображение в рабочую область.

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

Измените контраст местного колорита в изображении.

I2 = localcontrast(I1);
imshow(I2)

Вычислите цветовую разность изображений.

dE = deltaE(I1,I2);

Отобразите цветовое различие как изображение. Максимальное значение dE превышает область значений [0, 1] ожидаемый изображений типа данных single, так отобразите изображение с помощью полной области значений отображения данных. Яркие пиксели указывают на большое цветовое различие и поэтому больший объем контрастного улучшения.

imshow(dE,[])

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

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

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

lab = rgb2lab(he);

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

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

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

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

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

imshow(dE,[])

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

свернуть все

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

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

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

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

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

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

Значения цвета находятся в L*a*b* цветовое пространство в виде числового или логического 0 ложь) или 1 TRUE)..

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

свернуть все

Цветовое различие (дельта E), возвращенный как одно из следующих.

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

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

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

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

Советы

  • Чтобы улучшить точность вычисления цветового различия, используйте imcolordiff функция. Эта функция следует за CIE94 и стандартами CIEDE2000 и предлагает параметры, чтобы улучшить перцепционную однородность для различных приложений.

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