Usted tiene un (muy) limitada capacidad de hacer esto en imwrite
: para JPEG sólo acepta BitDepth
, Comment
, Mode
y Quality
. Y Mode
y Quality
no se devuelven desde iminfo
. En imwrite
que puede hacer:
iminfo = imfinfo('Base_Pic.jpg')
imwrite(...,'BitDepth',iminfo.BitDepth, 'Comment',iminfo.Comment);
Aparte de eso, no hay una manera de hacer esto con la imagen Processing Toolbox/Matlab por lo que yo sé. Si tiene TIFF o imágenes médicas, hay varias cajas de herramientas que lo hacen, pero nunca he encontrado ninguna para jpeg, incluso en el Intercambio de archivos ...
Si tiene exiftool
en su sistema, puede utilizar
[status info]=system('exiftool -s Base_Pic.jpg');
info
ahora contiene una lista de los nombres de las etiquetas y los valores de las variables, por ejemplo:
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
...
y si se divide en dos puntos :
se puede escribir de nuevo utilizando exiftool -[TAG]=[VALUE]
, por ejemplo, exiftool -Make=Apple -Model="iPhone 4" ...
.
O puede copiarlos "todos" en una falta de éxito:
system('exiftool -overwrite_original -tagsFromFile Base_Pic.jpg Updated_Image.jpg')