У вас есть (очень) ограниченные возможности сделать это в imwrite
: для JPEG он принимает только BitDepth
, Comment
, Mode
и Quality
. И Mode
и Quality
не возвращаются с 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')