how to show one by one jpg images using slider from the folder
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dear all
Hope you are keeping Good and enjoying well. i have 55 jpg images i displayed them on Axes but all the images frequently passes in front of me. i want to show images one by one using by clicking on slider. how i use slider in this code please? i need to work on every image. any help is appriciated in advance.
Isa
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
myFolder = 'C:\Users\khanm\Desktop\image files';
if ~isdir(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
uiwait(warndlg(errorMessage));
return;
end
filePattern = fullfile(myFolder, '*.jpg');
jpegFiles = dir(filePattern);
for k = 1:length(jpegFiles)
baseFileName = jpegFiles(k).name;
fullFileName = fullfile(myFolder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
imageArray = imread(fullFileName);
imshow(imageArray); % Display image.
drawnow; % Force display to update immediately.
end
0 commentaires
Réponses (1)
Image Analyst
le 10 Sep 2013
Here is some code from a listbox click callback. You can do similar just put it in your scrollbar callback:
% Get image name
Selected = get(handles.lstImageList, 'value');
% If more than one is selected, bail out.
if length(Selected) > 1
% Change mouse pointer (cursor) to an arrow.
set(gcf,'Pointer','arrow')
drawnow; % Cursor won't change right away unless you do this.
return;
end
% If only one is selected, display it.
% Get list of ALL the filenames in the listbox.
ListOfImageNames = get(handles.lstImageList, 'string');
% Get the one name they selected.
baseImageFileName = strcat(cell2mat(ListOfImageNames(Selected)));
fullImageFileName = [handles.ImageFolder '/' baseImageFileName]; % Prepend folder.
imshow(fullImageFileName);
My image names were stored in a listbox. If yours aren't then just do whatever you need to do to get the image. For example if the slider value is 13, just get image #13 from your cell array of filenames.
10 commentaires
Image Analyst
le 12 Sep 2013
That's the right concept but the wrong execution. Do it like this, for one slice image:
% Turn the hand drawn coordinates into a logical mask.
mask = poly2mask(pos(:,1), pos(:,2), rows, columns);
% Sum up all the pixels inside the mask to get the area of this slice.
thisSlicesArea = sum(mask(:));
% Now multiply by the separation between slices to get the volume.
thisSlicesVolume = thisSlicesArea * yourSliceSeparation;
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!