Я пытаюсь создать легенду для цветного изображения, созданного из изображения метки и пользовательской карты цветов, используя label2rgb
.В основном я хочу легенду, которая показывает небольшие прямоугольные образцы цветов карты цветов вместе с пользовательскими метками.
Я бы хотел иметь возможность установить цвет меток и фона.Изображение отображается с помощью imshow, и, по-видимому, legend
не влияет на такие цифры.
Я попытался немного взломать это, используя colorbar
, как показано ниже, но я довольно недоволен этим, так как, если я изменю размер окна графика, все сбрасывается.
Может кто-нибудь сказать мне, как должен создаваться этот тип легенды, желательно таким образом, чтобы он перемещался и перемещался сам по мере необходимости при изменении размера окна рисунка.Если это невозможно, то может ли кто-нибудь сказать мне, как либо раскрасить текст метки цветовой полосы, либо дать ограничивающей рамке цветовой полосы (включая ее метки) цвет фона?Как вы можете видеть, если бы я не добавил фоновое белое поле вручную, ярлыки были бы невидимы.
Спасибо.
label_image = zeros(768, 1024);
label_image(100:400, 500:600)=1;
label_image(500:600, 100:600)=2;
label_image(25:300, 100:400)=3;
custom_colormap = [ 0 1 0; 1 0 0; 0 0 1;];
label_image = label2rgb(label_image, custom_colormap, [0 0 0]);
% Make a white backround for the colorbar.
% Don't want to have to do this line.
label_image(25:140, 775:1010,:)=255;
% Show the image
imshow(label_image, 'InitialMagnification', 50);
% Here, I would like to be able to set colorbar label text color and/ or
% colorbar bounding box background color, or better yet, use some variant
% on the legend function to do this automatically
colormap(custom_colormap);
labels={'Both', 'Always Moving', 'Moved'};
hcb=colorbar('peer',gca,...
[0.7 0.8 0.03 0.1],...
'YTickLabel',labels,...
'XAxisLocation','bottom',...
'TickLength',[0 0],...
'Color',[1 0 1]);