how can i insert list of images into listbox?? I have a folder containg images and i want to insert list of images into the listbox

 채택된 답변

Chandra Kurniawan
Chandra Kurniawan 2012년 1월 27일

4 개 추천

Hi, Usama.
Maybe you are seeking for something like this?
In the openingfcn
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
files = dir(fullfile(pwd,'Folder01','*.png'));
for x = 1 : length(files)
handles.images{x} = imread(fullfile(pwd,'Folder01',files(x).name));
end
set(handles.listbox1,'string',{files.name});
guidata(hObject, handles);
In the listbox1 callback
function listbox1_Callback(hObject, eventdata, handles)
handles.output = hObject;
index = get(handles.listbox1,'value');
imshow(handles.images{index});
guidata(hObject, handles);
You can also change the image extention by replacing png with another extention
Eq: files = dir(fullfile(pwd,'Folder01','*.jpg'));
And if it is DICOM files
files = dir(fullfile(pwd,'Folder01','*.dcm'));
for x = 1 : length(files)
handles.images{x} = dicomread(fullfile(pwd,'Folder01',files(x).name));
end
I hope this helps.

댓글 수: 8

Usama Javed
Usama Javed 2012년 1월 27일
thank you so much sir,
is this openingfcn is any callbackfcn or user created fcn???
Usama Javed
Usama Javed 2012년 1월 27일
i got it.. :)
Usama Javed
Usama Javed 2012년 1월 27일
i want to loaddir thorugh browse button...
i mean there is a browse button when i click that button than those images should be loaded into the listbox...
can u tell me that plz...
Chandra Kurniawan
Chandra Kurniawan 2012년 1월 27일
Hi, Usama :)
Just little hint : uigetdir
http://i1196.photobucket.com/albums/aa410/nasa078/Mathworks/uigetdir01.jpg
Usama Javed
Usama Javed 2012년 1월 27일
i have used it sir,but its not showing in the listbox
handles.output=hObject;
dirr=uigetdir('C:\Users\Asad\Documents\MATLAB\','Select a Case')
files = dir(fullfile(pwd,dirr,'*.dcm'));
for x=1 : length(files)
handles.images{x}= dicomread(fullfile(pwd,'Case1',files(x).name));
end
set(handles.listbox1,'string',{files.name});
guidata(hObject, handles);
hush puppy
hush puppy 2015년 5월 15일
hi @chandra, i've used the code provided above..but im getting this error: 'Cell contents assignment to a non-cell array object'. Can you tell me what went wrong? All I get is a blank listbox.
Try
for k = 1 : length(files)
listboxItems{k} = files(k).name;
end
set(handles.listbox1, 'String', listboxItems);
hush puppy
hush puppy 2015년 5월 15일
@image analyst, i've tried your code..this code seem to display all my file names now..but the image is not appearing on my handles.images when I click on it..

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

추가 답변 (3개)

Chandra Kurniawan
Chandra Kurniawan 2012년 1월 27일

4 개 추천

In openingfcn
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
handles.cdir = pwd;
set(handles.listbox1,'enable','off');
guidata(hObject, handles);
In pushbutton callback
function pushbutton1_Callback(hObject, eventdata, handles)
handles.output = hObject;
fn = uigetdir(handles.cdir,'Select directory');
if fn ~= 0
handles.cdir = fn;
img = dir(fullfile(handles.cdir,'*.png'));
for x = 1 : length(img)
handles.I{x} = imread(fullfile(handles.cdir,img(x).name));
end
if length(img) ~= 0, set(handles.listbox1,'enable','on');
else, set(handles.listbox1,'enable','off');
end
set(handles.edit1,'string',handles.cdir);
set(handles.listbox1,'string',{img.name});
end
guidata(hObject, handles);
In listbox callback
function listbox1_Callback(hObject, eventdata, handles)
handles.output = hObject;
index = get(handles.listbox1,'value');
imshow(handles.I{index});
guidata(hObject, handles);
%

댓글 수: 7

Usama Javed
Usama Javed 2012년 1월 27일
So kind of you sir, thank you, works great
Usama Javed
Usama Javed 2012년 1월 27일
how can i put a static image on my interface, for example if i want to put a logo on my interface than ??
Chandra Kurniawan
Chandra Kurniawan 2012년 1월 27일
Just the same idea.
Use small axes in the top corner of your interface.
Then call the logo image with imread from your directory in opening fcn.
Walter Roberson
Walter Roberson 2012년 1월 27일
http://www.mathworks.com/support/solutions/en/data/1-19J7T/
Elysi Cochin
Elysi Cochin 2012년 10월 24일
sir i wanted one more listbox in my GUI... the same code when written... listbox1's image1 is showing listbox2's image... but listbox2's images are being displayed correctly... can u rectify my error.... same way i wanted to swap the contents of 2 listboxes.... and also i wanted same contents of listbox1 in listbox2.... please do reply me.....
Walter Roberson
Walter Roberson 2012년 10월 24일
Please start a new Question for this, and show your code in that new Question.
Elysi Cochin
Elysi Cochin 2013년 1월 31일
hi, chandra, one doubt, in addition to the listbox and axes.... i have two buttons also.... one named "DELETE" and the other named "RESTORE".....
in the DELETE button when i select a particular item from listbox that name gets deleted from the listbox and the corresponding image gets deleted from the folder....
on click of the RESTORE button all the delete images should get displayed in a figure file and added back to the folder.....
please can u help me do this option.....
i tried, its working when only one image is deleted..... if i delete more than one item, only the last deleted item is getting restored..... can u help me sort it out.....

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

Image Analyst
Image Analyst 2012년 1월 27일

1 개 추천

I don't know how to put images into listboxes. You can put the name of the image files into the listboxes (like Titus showed you) but you can't put the images themselves in with MATLAB only. However, you can put an ActiveX control onto your GUI, and there are third party ActiveX controls that can have images in a listbox, such as ( http://www.atalasoft.com/products/dotimage/winforms). Or you can use Microsoft's "ListView" control: http://msdn.microsoft.com/en-us/library/ie/bb398790.aspx. Scroll down the page about half way until you see the listbox with pictures of bicycles in it.
Titus Edelhofer
Titus Edelhofer 2012년 1월 26일

0 개 추천

Hi Usama,
something like the following:
files = dir(fullfile(theFolder, '*.jpg'));
set(handles.listbox1, 'string', {files.name})
Titus

질문:

2012년 1월 26일

댓글:

2015년 5월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by