如何使用MATLAB提取图像元数据,例如曝光度,宽度,高度或位深度?
直到最近我一直在使用exifread
,但是最新的MATLAB版本中不再存在此函数。
另一个功能是imfinfo
,但是它无法读取“ EXPOSURE DATA”图像。
如何读取“曝光”图像?
答案 0 :(得分:1)
exifread()
已于9年前弃用。它已替换为imfinfo
info = imfinfo(filename)
将返回您想要的所有信息。
某些文件格式返回的其他字段:
仅JPEG和TIFF-如果文件名包含可交换图像文件 格式化(EXIF)标签,则信息中可能还包含“ DigitalCamera”或 “ GPSInfo”(全球定位系统信息)字段。
info.Width
,info.Height
,info.BitDepth
。
曝光时间以及所有其他相机参数都存储在1x1结构info.DigitalCamera
下面是一个例子
>> info = imfinfo('img_1771.jpg')
info =
Filename: 'C:\Users\fhempel\Desktop\tmp\img_1771.jpg'
FileModDate: '07-Aug-2014 12:09:45'
FileSize: 32764
Format: 'jpg'
FormatVersion: ''
Width: 480
Height: 360
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}
Make: 'Canon'
Model: 'Canon PowerShot S40'
Orientation: 1
XResolution: 180
YResolution: 180
ResolutionUnit: 'Inch'
DateTime: '2003:12:14 12:01:44'
YCbCrPositioning: 'Centered'
DigitalCamera: [1x1 struct]
ExifThumbnail: [1x1 struct]
>> info.DigitalCamera
ans =
ExposureTime: 0.0020
FNumber: 4.9000
ExifVersion: [48 50 50 48]
DateTimeOriginal: '2003:12:14 12:01:44'
DateTimeDigitized: '2003:12:14 12:01:44'
ComponentsConfiguration: 'YCbCr'
CompressedBitsPerPixel: 5
ShutterSpeedValue: 8.9688
ApertureValue: 4.6563
ExposureBiasValue: 0
MaxApertureValue: 2.9709
MeteringMode: 'CenterWeightedAverage'
Flash: 'Flash did not fire, no strobe return detection function, auto flash mode, f...'
FocalLength: 21.3125
MakerNote: [1x450 double]
UserComment: [1x264 double]
FlashpixVersion: [48 49 48 48]
ColorSpace: 'sRGB'
CPixelXDimension: 2272
CPixelYDimension: 1704
InteroperabilityIFD: [1x1 struct]
FocalPlaneXResolution: 8.1143e+03
FocalPlaneYResolution: 8.1143e+03
FocalPlaneResolutionUnit: 2
SensingMethod: 'One-chip color area sensor'
FileSource: 'DSC'
CustomRendered: 'Normal process'
ExposureMode: 'Auto exposure'
WhiteBalance: 'Auto white balance'
DigitalZoomRatio: 1
SceneCaptureType: 'Standard'
答案 1 :(得分:0)
您认为丢失的所有信息都存储在iminfo
中,只是有所不同。您想要的大多数参数(包括曝光数据)都在其中
info=iminfo(fname);
info.DigitalCamera