Matlab imshow опускает NaN
Я использую imshow()
для визуализации данных, полученных из разницы двух изображений в оттенках серого. Изображения маскируются, т. Е. Каждый пиксель, лежащий под «маской», имеет значение NaN
. Данные представлены parula
. Проблема в том, что imshow()
обрабатывает NaN
как ноль, и поэтому маскированные пиксели представлены как синие. Есть ли простой способ опустить замаскированные пиксели или отображать их в цвете, который не является частью цветовой карты (например, белый, серый или черный)?
Я бы предпочел, чтобы решение основывалось на imshow()
поскольку было бы проще включить в мой код. Однако также будут оценены решения с использованием pcolor
, pcolor
и т.п.
- Выполнение преобразования ширины штриха (SWT) (Java, C # ...)
- Как разделить изображение на блоки в MATLAB?
- Как заострить изображение в OpenCV?
- Обработка изображений на стороне клиента
- подключенных компонентов в OpenCV
- 3d индексирование ядра CUDA для фильтрации изображений?
- Как определить маркеры для Watershed в OpenCV?
- Извлечение коэффициентов DCT из кодированных изображений и видео
- Быстрое размытие растровых изображений для Android SDK
- Быстрый алгоритм прореживания
- Как найти Waldo с Mathematica?
- Обнаружение горизонтальной линии с помощью OpenCV
- Перестановка шумовой монеты в круглую форму
Вы можете установить AlphaData
объекта изображения равным ~isnan(data)
таким образом, чтобы NaN отображались как прозрачные значения.
R = rand(10); R(R < 0.25) = NaN; him = imshow(R, 'InitialMagnification', 10000); colormap parula set(him, 'AlphaData', ~isnan(R))
Если вам нужен определенный цвет, вы можете включить оси и установить цвет осей как любой цвет, который вы хотите, чтобы значения NaN
были.
axis on; % Make a red axis set(gca, 'XColor', 'none', 'yColor', 'none', 'xtick', [], 'ytick', [], 'Color', 'r')
Если вы используете pcolor
, значения NaN
уже рассматриваются как прозрачные.