help Dicominfo in Listbox

Could you help me put the dicominfo function in a listbox, you should display the image information in the listbox

1 Comment

Are you certain you want it in a listbox ? listbox is an input control for the user to select a value or action. It would seem to make more sense to put it into a text box or uitable.

Answers (1)

If you want to construct a textbox, one of the ways to proceed would be to evalc() dicominfo, or to assign the result of dicominfo to a variable and evalc() disp() of the variable.
Note that evalc() will give back a result with embedded newline characters. To break it up into lines, I suggest using
cell_result = regexp(dicominfo_result, '\r?\n', 'split');
Make sure that you set Max of the uicontrol('style','text') to at least 2 if you are displaying multiple lines this way.

7 Comments

Use this code, but the full information does not come out, you can help me.
im=dicomread(info);
s=fields(info);
uicontrol('Style','Listbox','String',s,'Position',[20 70 415 320])
info = dicominfo(image_file_name);
s = fieldnames(info);
I still get the same result, some other idea?
I just tried this with respect to a file I had sitting around:
image_file_name = '000059.dcm'
info = dicominfo(image_file_name);
s = fieldnames(info)
LB = uicontrol('Style','List','String', s, 'Position', [20 70 415 320]);
When I look at the results, they look fine to me -- which is to say that only the field names come out.
To display the contents as well, I would
image_file_name = '000059.dcm';
info = dicominfo(image_file_name);
dicominfo_result = evalc('disp(info)');
cell_result = regexp(dicominfo_result, '\r?\n', 'split');
TB = uicontrol('Style', 'edit', 'enable', 'inactive', 'String', cell_result, 'Max', 2, 'Position', [20 70 415 320]);
it worked perfect .. thank you very much
Hi all,
I want to extract the RescaleSlope value from dicominfo for each slice. But i have 135 slice images. This is my code to extract RescaleSlope. But still failed. I JUST CAN EXTRACT ONE BY ONE ONLY.
P = zeros(256, 256, 135);
for K = 1 : 135
petname = sprintf('PET_I1001_PT%03d.dcm', K);
P(:,:,K) = dicominfo(petname);
end
info=dicominfo(P(:,:,K));
[r,c,slice] = findND (info.RescaleSlope);
Anyone who can help me solve this problem???
Stop posting the same question over and over again. You already created https://www.mathworks.com/matlabcentral/answers/383405-extract-rescale-slope-value

This question is closed.

Asked:

on 5 Feb 2018

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!