displaying images on axes in MATLAB
Show older comments
I have a GUI with 5 axes in it, where images which are stored in text file(notepad) are displayed. Images in text file are not static, it keeps updating with new ones. I mean for first search images are different and after closing all windows again if i run same program for next search different images may get saved in notepad.
function displayResults(filename, header)
figure('Position',[200 100 700 400], 'MenuBar', 'none', 'Name', header, 'Resize', 'off', 'NumberTitle', 'off');
% Open 'filename' file... for reading...
fid = fopen(filename);
for N=1:5
imagename = fgetl(fid);
if ~ischar(imagename), break, end % Meaning: End of File...
(x) = imread(imagename);
axes(handles.axesN);
imshow(fname);
xlabel(imagename);
end
fclose(fid);
filename is text file
I need to fit these images on all 5 axes, but I'm getting error like undefined variable handles.axesN How can i go for it?
1 Comment
Jan
on 29 Apr 2013
The question is not clear to me. You have posted the code 3 times now, but this does not increase the chance to understand it.
Answers (2)
What do you expect "handles.axesN" to be? perhaps you want:
axes(handles.(sprintf('axes%d', N)));
7 Comments
Chethan
on 28 Apr 2013
Jan
on 28 Apr 2013
But, Chethan, how could this be possible?? What would happen for this, if such a magic conversion would work:
i = 0.3
a = sin(i)
Then instead of sin(), the function s0.3n() would be called!
Matlab does not have a dwim mode yet (do what I mean), an therefore you have to tell it explicitly, when you want to add a number to a name of a variable or field. Have you been successful with the solution I've posted?
Chethan
on 29 Apr 2013
Jan
on 29 Apr 2013
Please do not post a vague description of the error message, but an exact copy of the complete message. We cannot guess the omitted parts of the message, but they are important.
I do not understand your message. What does "my calling function FIG5 GUI M-file" mean? Is the shown code working or not? Why do you create a figure, when you want to draw to existing figures? Where does "handles" come from in your code? I assume a guidata() is missing here. To which figure should the "handles" belong to?
Chethan
on 2 May 2013
Babatunde Otaru
on 1 Mar 2016
Edited: Babatunde Otaru
on 1 Mar 2016
Hi Guys, any update on this? I am having this same error. My code snippet below:
axes(handles.axesTagName);
imshow(theImage)
Image Analyst
on 1 Mar 2016
For his function displayResults(), handles was not passed in to the function so the function cannot see it. You'd need to pass in handles via the input argument list in order to use it inside the function.
handles is not a global variable that is automatically seen by all functions in the m-file, so if you want to use it, you must pass it in.
Image Analyst
on 28 Apr 2013
There are only 5, so get rid of the loop and just do it explicitly
% Read in image 1
theImage = imread(filename);
axes(handles.axes1);
imshow(theImage);
% Read in image 2
theImage = imread(filename);
axes(handles.axes2);
imshow(theImage);
and so on.
I suggest you use fullfile(), and exist(filename, 'file') to construct the full filename (folder + base filename + extension) and check to see that it actually exists.
1 Comment
Categories
Find more on Environment and Settings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!