2013-01-18 397 views
1

我正在研究一个项目,我需要找到图像的图像分辨率或图像高度和宽度与图像分辨率之间的任何关系。在matlab中获取图像分辨率

当我们右键单击图像并选择properties->details,我们有分辨率信息。

我们如何提取matlab中的信息?

该信息不依赖于图像属性,因为某处我读取的图像只有像素信息,ppidpi取决于打印机,传感器。

+0

关于GeoTIFF和一个“空间/地面分辨率”的机会,然后看看[geotiffinfo](http:// www。 mathworks.co.uk/help/map/ref/geotiffinfo.html) – MBL

+0

我正在使用“jpeg”图像。对于“tiff”图像,我们可以使用imfinfo获得分辨率。是否有任何其他方式来提取图像属性中提供的信息 - >细节,可以通过右击图像看到? –

回答

4

您可以使用imfinfo matlab函数,它返回一个结构,其字段包含有关图像的信息。

例如:

info = imfinfo(YOUR_IMAGE); 
w = info.Width; %An integer indicating the width of the image in pixels 
h = info.Height; %An integer indicating the height of the image in pixels 

在你的情况,你可能想:Horizontal resolutionVertical resolution。因此,使用:

xR = info.XResolution 
yR = info.YResolution 

欲了解更多信息:http://www.mathworks.com/help/matlab/ref/imfinfo.html

+0

我需要图像的分辨率,imfinfo不包含“jpeg”图像的图像分辨率。但是,右键单击 - >属性 - >详细信息包含有关xresolution和y-resolution的信息。 –

+0

如果宽度和高度在某种程度上与xresolution和yresolution有关,那么它会有帮助。但是,我没有任何想法,也没有得到。在这方面需要帮助。 –

+0

您可以使用'.jpg'扩展名而不是'.jpeg'打开图片,宽度和高度将为您提供您在细节中看到的分辨率。请注意,'.jpg'与'.jpeg'相同(dos扩展名是'.jpg',而其他os可能使用'.jpeg') – Maroun

1

对于JPEG(或TIFF)图片您可以提取所有使用功能exifread EXIF信息和标签。这应该包含图像属性中包含的所有信息。

实施例:

exif = exifread('Image.JPG') 
+0

从该函数的文档:'注意:exifread将在未来版本中删除。使用imfinfo代替.' – Maroun

+0

exifread正在为.tiff而不是为.jpg,我有matlab版本7.12.0.635和imfinfo不包含可以使用右键单击 - >属性 - >详细信息可以看到的信息。我猜,.jpg的元数据信息只能用属性来看,没有办法,因为这些信息并不是以元数据存储为jpg,而是如何在属性中看到它? –

+0

元数据应该能够被'exifread'和'imfinfo'读取。如果这些函数没有返回所需的信息,请尝试诸如[ExifTool](http://www.sno.phy.queensu.ca/~phil/exiftool/)这样的命令行,因此可以通过matlab调用。如果你正在努力进一步分享图像(例如通过Dropbox),我可以看看它 – MBL

0

对于“.JPG”的图像,基于从它已经采取,分辨率信息将存在,所以对于每一个JPEG图像,可能不存在分辨率在设备上元数据中存在的信息以及存在的任何信息都可以在matlab中使用“imfinfo”或“imageinfo”来查看。 对于改变分辨率有matlab命令,可以很容易地找到