Генерация фона диаграммы ошибок imatest color, созданной с помощью color checker?

#c #matlab #colors #adobe-illustrator #cielab

#c #matlab #Цвет #adobe-illustrator #cielab

Вопрос:

У меня возникли некоторые проблемы с поиском фона следующего графика, созданного с использованием imatest. По сути, я хочу знать, как или откуда я могу найти фон этого графика. На веб-сайте imatest упоминается, что цвета диаграммы генерируются при постоянной яркости L* = 90 и варьируются a* and b* from -80 to 80 . Я искал лабораторный генератор цветов, но все программное обеспечение генерирует цветные точки. Но я хочу получить непрерывное изображение, изменяя значения a и b. Есть идеи?

введите описание изображения здесь

Ответ №1:

Используя matlab , вы можете просто преобразовать пространство cielab в пространство RGB:

 range = -80:0.5:80;                            % a,b range, change the step to change the size of the output image.
L     = 100*ones(size(range,2),size(range,2)); % L intensity
[b,a] = meshgrid(range);                       % generate a 2D grid
Lab   = cat(3,L,a,b);                          % create the 3D Lab array
I     = lab2rgb(rot90(Lab));                   % Lab -> RGB
imshow(I)                                      % Display the result
 

И мы получаем:

введите описание изображения здесь

Ответ №2:

Просто для удовольствия, если кому-то нужна версия Python OpenCV, я сделал такую:

 #!/usr/bin/env python3

import cv2
import numpy as np

# Set size of output image
h, w = 500, 500

# Create "L" channel, L=90
L = np.full((h,w), 90.00, np.float32)

# Create "a" channel, -80 to  80
a = np.linspace(-80,80,w,endpoint=True,dtype=np.float32)
a = np.resize(a,(h,w))

# Create "b" channel by rotating "a" channel 90 degrees
b = cv2.rotate(a, cv2.ROTATE_90_COUNTERCLOCKWISE)

# Stack the 3-channels into single image and convert from Lab to BGR
res = np.dstack((L,a,b))
res = cv2.cvtColor(res, cv2.COLOR_LAB2BGR)

# Save result
cv2.imwrite('result.png', (res*65535).astype(np.uint16))
 

введите описание изображения здесь