Почему настройка диапазона изображения RGB с помощью imshow (image, []) не работает? - PullRequest
2 голосов
/ 26 февраля 2020

У меня двойное RGB-изображение, минимальное значение которого равно -0,3471, а максимальное - 0,6485. Я попытался сделать imshow(image), и в результате получается следующее:

enter image description here

Чтобы решить эту проблему, кроме суммирования минимального значения для матрицы изображения, я попытался использовать imshow(image, []), что теоретически регулирует диапазон изображения до диапазона [0,1] в этом случае, но если я это сделаю, выходное изображение будет таким же.

Следовательно, мне было интересно, будет ли проблема вызвана тем, что это RGB-изображение, поскольку с серыми изображениями оно выполняет свою функцию. Фактически, я отрегулировал диапазон красного слоя, используя imshow(image(:,:,1),[]).

Подводя итог, я хотел бы отрегулировать диапазон этого изображения, используя imshow (если возможно).

Ответы [ 2 ]

4 голосов
/ 26 февраля 2020

Как вы можете видеть в документации для объекта image , у него есть свойство CData, которое может быть либо 2D-массивом (серое изображение), либо 3D-массивом (RGB). образ). В 2D-случае значения отображаются (в соответствии со свойством CDataMapping) через указанную цветовую карту, чтобы получить значения RGB для отображения на экране. В трехмерном случае значения непосредственно используются в качестве значений RGB для отображения на экране.

Функция imshow просто создает объект image с матрицей ввода в качестве свойства CData. Второй аргумент (либо [], либо два явных значения) задает свойство CLim содержащих осей и, таким образом, задает масштаб изображения серого цвета. Но, как мы видели ранее, этот параметр игнорируется для изображений RGB.

Чтобы масштабировать цветное изображение, просто примените к нему линейное отображение перед отображением:

a = min(image(:));
b = max(image(:));
imshow((image-a)/(b-a))
0 голосов
/ 26 февраля 2020

Cris 'ответ ниже точен, я ошибся в своем оригинальном сообщении. Я удалил этот контент, хотя он был принят в пользу сообщения Криса.

...