how do I show the images name on top of each picture

3 次查看(过去 30 天)

采纳的回答

Yongjian Feng
Yongjian Feng 2021-11-25
编辑:Yongjian Feng 2021-11-25
Add a title to each subplot, after you call subplot:
title('Horse')
  2 个评论
new_user
new_user 2021-11-25
subplot(2,2,3), title ('Bicycle');
imshow(readimage(imds,tricycle));
like this?
Yongjian Feng
Yongjian Feng 2021-11-25
Yeah, instead of ',', use ';'.
subplot(2,2,3);
title ('Bicycle');
imshow(readimage(imds,tricycle));

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2021-11-25
Another option, other than title(), is to put the filename in text in the overlay
rgbImage = imread(filename);
imshow(rgbImage);
text(10, 10, filename, 'Color', 'r', 'FontSize', 20, 'VerticalAlignment', 'top');
  2 个评论
new_user
new_user 2021-11-25
figure
subplot(2,2,1)
imshow(readimage(imds,horse));
how to edit this line to add yours??
Image Analyst
Image Analyst 2021-11-25
I'm sure you figured it out by now, but it would go something like this:
fontSize = 20;
folder = pwd;
imds = imageDatastore(folder, "FileExtensions",[".jpg",".tif"])
numImages = length(imds.Files)
plotRows = ceil(sqrt(numImages))
for k = 1 : numImages
thisFile = imds.Files{k}
[f, baseFileName, ext] = fileparts(thisFile);
thisImage = imread(thisFile);
subplot(plotRows, plotRows, k);
imshow(thisImage);
title(baseFileName, 'FontSize', fontSize);
text(10, 10, baseFileName, 'Color', 'r', ...
'BackgroundColor', 'y', 'FontSize', fontSize, 'VerticalAlignment', 'top')
end
g = gcf;
g.WindowState = 'maximized'
I show the name both as a title and in the overlay.

请先登录,再进行评论。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by