我有一个GUI,用于计算和绘制项目图像。它以“ Jet”颜色图显示图像。但是,我希望显示图像为灰色颜色图。
我尝试了以下方法。但是它以黑色的颜色图显示了图像。
cmap = gray(255);
J1 = ind2gray(J,cmap);
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
Default colomap就像是喷气机一样。我想将此喷射彩色图转换为灰度。
更新
我尝试了克里斯·伦戈的答案,这给了我 output 在此图中,下部和上部颜色条均以黑色开始和结束。但是,我只希望下标从白色开始,上标从黑开始。
coobar的GUI中的代码如下:
% 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');
答案 0 :(得分:1)