필터 지우기
필터 지우기

how to show one by one jpg images using slider from the folder

조회 수: 1 (최근 30일)
Muhammad
Muhammad 2013년 9월 10일
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

답변 (1개)

Image Analyst
Image Analyst 2013년 9월 10일
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
Image Analyst
Image Analyst 2013년 9월 12일
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;
Muhammad
Muhammad 2013년 9월 12일
No, i dont want the area. i want coordinate of every pixel on a excel sheet so that i will calculate the Volume of every pixel and then i have a excel sheet which contains X, Y, Z, Volume (XxYxZ). these are all in seprate seprate columns.

댓글을 달려면 로그인하십시오.

태그

Community Treasure Hunt

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

Start Hunting!

Translated by