Reputation: 658
How do I retrieve type, size, and dimensions of an image in MATLAB?
Upvotes: 3
Views: 17837
Reputation: 134
You can get the information about an image file using imfinfo, which outputs a structure with various fields including the width, height and colortype.
For example:
InfoImage = imfinfo('peppers.png');
InfoImage =
Filename: '/Applications/MATLAB_R2014a.app/toolbox/matlab/imagesc...'
FileModDate: '02-Apr-2013 15:55:52'
FileSize: 287677
Format: 'png'
FormatVersion: []
Width: 512
Height: 384
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: [137 80 78 71 13 10 26 10]
Colormap: []
Histogram: []
InterlaceType: 'none'
Transparency: 'none'
SimpleTransparencyData: []
BackgroundColor: []
RenderingIntent: []
Chromaticities: []
Gamma: []
XResolution: []
YResolution: []
ResolutionUnit: []
XOffset: []
YOffset: []
OffsetUnit: []
SignificantBits: []
ImageModTime: '16 Jul 2002 16:46:41 +0000'
Title: []
Author: []
Description: 'Zesty peppers'
Copyright: 'Copyright The MathWorks, Inc.'
CreationTime: []
Software: []
Disclaimer: []
Warning: []
Source: []
Comment: []
OtherText: []
Then you can get the info you want with regular structure assignment:
With = InfoImage.Width;
Height = InfoImage.Height;
Colortype = InfoImage.ColorType;
After that you're good to go. You can display this information in textboxes by setting their "String" property to what you want:
set(handles.WidthTextbox,'String',num2str(InfoImage.Width));
and so on for the other fields.
CHECK OUT MORE HERE.
Upvotes: 1
Reputation: 74940
IMFINFO should show you the information you're looking for.
Here's the example from the MATLAB help:
info = imfinfo('ngc6543a.jpg')
info =
Filename: [1x95 char]
FileModDate: '01-Oct-1996 17:19:44'
FileSize: 27387
Format: 'jpg'
FormatVersion: ''
Width: 600
Height: 650
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {[1x69 char]}
Upvotes: 11