Разница в цветовом пространстве в OpenCV и MATLAB - PullRequest
0 голосов
/ 14 сентября 2018

Мне известно, что OpenCV считывает цветное изображение как BGR по умолчанию, а MATLAB считывает цветное изображение как RGB.Я оба преобразовал одно и то же изображение в цветовое пространство L * a * b *, используя код ниже.

OpenCV Python

img=cv2.imread("sample.jpg")
lab=cv2.cvtColor(img,cv2.COLOR_BGR2LAB)
cv2.imshow("Sample",lab)

MATLAB

img=imread("sample.jpg")
D = makecform('srgb2lab');
lab=applycform(img,D);
imshow(lab)

Однако отображаемое изображениене имеет такого же выхода.Но когда я меняю каналы L * и b * в OpenCV, он отображает то же изображение, что и MATLAB.

img=cv2.imread("sample.jpg")
lab=cv2.cvtColor(img,cv2.COLOR_BGR2LAB)
l,a,b=cv2.split(lab)
lab=cv2.merge((b,a,l))
cv2.imshow("Sample",lab)

Что приводит меня к вопросу, что я должен всегда заменять первый и третий канал 3-канального изображения, чтобы правильно отображать его в OpenCV?Не только L * a * b *, HSV и другие цветовые пространства тоже.Так как BGR отображается как RGB.Это означает, что L * a * b * отображается как b * a * L *, поэтому я должен снова инвертировать его, чтобы получить правильный вывод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...