У меня есть графический интерфейс для расчета и построения изображения моего проекта.Показывает изображения в цветовой карте «Jet».Однако я хочу отображать изображения в серой цветовой карте.
Я попробовал следующее.Но оно показало изображение в чёрной цветовой карте.
cmap = gray(255);
J1 = ind2gray(J,cmap);<br>
set(handle_fig,'Colormap',J1);
Фактический код такой:
n = ceil(m/4);
u = [(1:1:n)/n ones(1,n-1) (n:-1:1)/n]';
g = ceil(n/2) - (mod(m,4)==1) + (1:length(u))';
r = g + n;
b = g - n;
g(g>m) = [];
r(r>m) = [];
b(b<1) = [];
J = zeros(m,3);
J(r,1) = u(1:length(r));
J(g,2) = u(1:length(g));
J(b,3) = u(end-length(b)+1:end);
if verLessThan('matlab','9.1')
set(handle_fig,'Colormap',J);
else
% Get all axes and set their colormap. This is a fix for 2016b+
% (9.1+) which now sets colormaps on a per-axis basis for imshow()
% instead of for the entire figure.
handle_axes = findobj(handle_fig,'type','axes');
for i = 1:length(handle_axes)
colormap(handle_axes(i),J);
end
end
По умолчанию colomap выглядит так, какструи.Я хочу преобразовать эту цветовую карту струи в оттенки серого.
ОБНОВЛЕНИЕ
Я попробовал ответ Криса Луенго, он дает мне этот вывод На этом рисунке нижняя и верхняя цветная полоса и начинается, изаканчивается в черном.Тем не менее, я хочу, чтобы нижняя шкала начинала со значения белого цвета, а верхняя - черного цвета.
Код в графическом интерфейсе для колобара выглядит следующим образом:
% Set colorbar
handle_colorbar = colorbar('peer',handles_gui_sub.axes_formatplot);
set(handle_colorbar,'UIContextMenu','');
set(get(handle_colorbar,'child'),'YData',[cmin cmax]);
set(handle_colorbar,'YLim',[cmin cmax]);
set(handle_colorbar,'Units','Pixels');