How to load an image to a figure using uigetfile/imread?
21 次查看(过去 30 天)
显示 更早的评论
Hello,
Novice coder here with a question that I am certain there will be an easy answer to - it just escapes me at the moment...
I am simply trying to display an image that I select from my PC's location, in a figure for further analysis. I actually have the analysis code working, but the problem I am having is that when I use uigetfile to provide the 'file look-up', I can navigate to the file, get the figure to launch, but the image then doesn't write to the figure. My code thus far is:
[filename, pathname] = uigetfile(...
{'*.jpg; *.JPG; *.jpeg; *.JPEG; *.img; *.IMG; *.tif; *.TIF; *.tiff, *.TIFF','Supported Files (*.jpg,*.img,*.tiff,)'; ...
'*.jpg','jpg Files (*.jpg)';...
'*.JPG','JPG Files (*.JPG)';...
'*.jpeg','jpeg Files (*.jpeg)';...
'*.JPEG','JPEG Files (*.JPEG)';...
'*.img','img Files (*.img)';...
'*.IMG','IMG Files (*.IMG)';...
'*.tif','tif Files (*.tif)';...
'*.TIF','TIF Files (*.TIF)';...
'*.tiff','tiff Files (*.tiff)';...
'*.TIFF','TIFF Files (*.TIFF)'},...
'MultiSelect', 'on');
% Error check - if no filename there is an error
if isequal(filename,0)
error(' Load Error: No files selected! Load cancelled.')
else
end
% launch the figure box
figure
imagefilename = imgfile(filename,pathname);
c = imread(imagefilename);
image(c)
axis image
grid on
I'm certain the problem is the bit after I launch the figure, but I have tried several different combinations of syntax, but just cant get it right.
Could anyone offer some wizardry to put me right please?
Best regards,
10B.
0 个评论
采纳的回答
Image Analyst
2015-8-7
I think you want fullfile() instead of imgfile().
% Have user browse for a file, from a specified "starting folder."
% For convenience in browsing, set a starting folder from which to browse.
startingFolder = 'C:\Program Files\MATLAB';
if ~exist(startingFolder, 'dir')
% If that folder doesn't exist, just start in the current folder.
startingFolder = pwd;
end
% Get the name of the file that the user wants to use.
defaultFileName = fullfile(startingFolder, '*.*');
[baseFileName, folder] = uigetfile(defaultFileName, 'Select a file');
if baseFileName == 0
% User clicked the Cancel button.
return;
end
fullFileName = fullfile(folder, baseFileName)
myImage = imread(fullFileName);
imshow(myImage);
6 个评论
Image Analyst
2015-8-10
"grid on" sort of makes grid lines over the image but they're dotted and hard to see. If you want nice, high-contrast, solid color lines over the image, you should use line():
% Make horizontal lines every 50 rows.
hold on;
for row = 1 : 50 : rows
line([1, columns], [row, row], 'Color', 'r');
end
% Make vertical lines every 75 columns.
for col = 1 : 75 : columns
line([col, col], [1, rows], 'Color', 'r');
end
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Processing Toolbox 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!