How to load an image to a figure using uigetfile/imread?
    5 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    10B
      
 am 7 Aug. 2015
  
    
    
    
    
    Beantwortet: Rafael Lozano
 am 26 Aug. 2020
            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 Kommentare
Akzeptierte Antwort
  Image Analyst
      
      
 am 7 Aug. 2015
        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 Kommentare
  Image Analyst
      
      
 am 10 Aug. 2015
				"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
Weitere Antworten (1)
Siehe auch
Kategorien
				Mehr zu Convert Image Type finden Sie in Help Center und File Exchange
			
	Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!