如何在Matlab中将元数据附加到图像?

时间:2012-01-29 19:05:26

标签: image matlab image-processing metadata

在Matlab中编写一些图像处理程序时,我发现我不知道如何将元数据写入新处理和保存的图像中。为了简单起见,我的流程如下:

image = imread('Base_Pic.jpg');  
image_info = imfinfo('Base_Pic.jpg');
%Process image...
%Update metadata...
imwrite(image,'Updated_Image.jpg','JPEG','Quality',100);

我基本上希望新处理的图像具有与原始图像相同的元数据属性,当然还会更新一些字段。

如何将image_info结构附加到新保存的JPEG

3 个答案:

答案 0 :(得分:6)

您在imwrite中执行此操作的能力非常有限:对于JPEG,它只接受BitDepthCommentModeQuality。并且ModeQuality不会从iminfo返回。 在imwrite,你可以这样做:

iminfo = imfinfo('Base_Pic.jpg')
imwrite(...,'BitDepth',iminfo.BitDepth, 'Comment',iminfo.Comment);

除此之外,据我所知,目前还没有办法用Image Processing Toolbox / Matlab做到这一点。如果您有TIFF或医学图像,有许多工具箱可以做到这一点,但我还没有找到任何jpeg,即使在文件交换...

如果您的系统上有exiftool,则可以使用

[status info]=system('exiftool -s Base_Pic.jpg');

info现在包含标签名称和标签值的列表,例如:

ExifToolVersion                 : 8.75
FileName                        : Base_Pic.jpg
Directory                       : Pictures
FileSize                        : 2.0 MB
FileModifyDate                  : 2011:10:27 08:41:55+10:00
FilePermissions                 : rw-rw-r--
FileType                        : JPEG
MIMEType                        : image/jpeg
JFIFVersion                     : 1.01
ExifByteOrder                   : Big-endian (Motorola, MM)
Make                            : Apple
Model                           : iPhone 4
...

如果您在冒号:上拆分,则可以使用exiftool -[TAG]=[VALUE]将其写回来,例如exiftool -Make=Apple -Model="iPhone 4" ...

或者你可以在一次犯规中复制“全部”:

system('exiftool -overwrite_original -tagsFromFile Base_Pic.jpg Updated_Image.jpg')

答案 1 :(得分:2)

阅读本文: http://www.mathworks.co.uk/help/matlab/import_export/exporting-to-images.html#br_c_iz-1

标题下:“将图像数据和元数据导出到TIFF文件”......

答案 2 :(得分:1)

如果您没有修改太多字段,可以使用exiftool,这是一个可以读取和写入exif标记的可执行文件。

我可能会做类似的事情:

image = imread('src.jpg');  
image_info = imfinfo('src.jpg');
%Process image...
%Update metadata...
imwrite(image,'dst.jpg','JPEG','Quality',100);

% copy over all the tags
system('exiftool -tagsfromfile src.jpg dst.jpg');

% then use exif tool to update the specific tags
...