2012-02-16 112 views

回答

1

并非所有的图像都有分辨率信息。它包含在EXIF(可交换图像文件格式)标签中。只有JPEG和TIFF文件可能包含EXIF,通常由数码相机或扫描仪提供。如果它在那里,你可以从IMFINFO输出中得到它。

info = imfinfo(filename); 
xres = info.XResolution; 
yres = info.YResolution; 
resunit = info.ResolutionUnit; 

您可以随时检查是否存在这些字段:

if isfield(info,'XResolution') 
    ... 
end 

UPDATE

至于BMP文件,他们有HorzResolutionVertResolution性能表示在每米像素的分辨率根据BMP format standard。你可以乘以0.0254得到DPI(大约)。

+0

我有一个简单的BMP文件。使用ifran我可以看到DPI并使用imfinfo我无法访问此信息 – Mercury 2012-02-16 07:28:48

+0

作为imfinfo状态的documentatino EXIF标记仅支持JPEG和TIFF。你在imfinfo输出中有'HorzResolution'和'VertResolution'字段吗? – yuk 2012-02-16 07:48:46

+0

是的,我愿意。但是如何从这些值中提取分辨率(DPI)? – Mercury 2012-02-16 08:05:42

0

对于哪种图像类型? imfinfo()实际上可以返回DPI的值作为XResolutionYResolution提供,但我不知道哪些图像类型。