zac*_*618 9 matlab metadata image image-processing
在Matlab中编写一些图像处理程序时,我发现我不知道如何将元数据写入新处理和保存的图像中.为了简单起见,我的流程如下:
image = imread('Base_Pic.jpg');
image_info = imfinfo('Base_Pic.jpg');
%Process image...
%Update metadata...
imwrite(image,'Updated_Image.jpg','JPEG','Quality',100);
Run Code Online (Sandbox Code Playgroud)
我基本上希望新处理的图像具有与原始图像相同的元数据属性,当然还会更新一些字段.
如何将image_info
结构附加到新保存的JPEG
?
你必须要做到这一点(非常)有限的能力imwrite
:支持JPEG它只接受BitDepth
,Comment
,Mode
和Quality
.而Mode
和Quality
没有得到来自返回iminfo
.在imwrite
你可以做:
iminfo = imfinfo('Base_Pic.jpg')
imwrite(...,'BitDepth',iminfo.BitDepth, 'Comment',iminfo.Comment);
Run Code Online (Sandbox Code Playgroud)
除此之外,据我所知,目前还没有办法用Image Processing Toolbox/Matlab做到这一点.如果你有TIFF或医学图像,有很多工具箱可以做到这一点,但我还没有找到任何jpeg,即使在文件交换...
如果您使用的exiftool
是系统,则可以使用
[status info]=system('exiftool -s Base_Pic.jpg');
Run Code Online (Sandbox Code Playgroud)
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
...
Run Code Online (Sandbox Code Playgroud)
如果你在冒号上分开,:
你可以用它们写回来exiftool -[TAG]=[VALUE]
,例如exiftool -Make=Apple -Model="iPhone 4" ...
.
或者你可以在一次犯规中将它们"全部"复制出来:
system('exiftool -overwrite_original -tagsFromFile Base_Pic.jpg Updated_Image.jpg')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7171 次 |
最近记录: |