2012-01-29 10 views
9

Matlabでいくつかの画像処理ルーチンを書いているうちに、新しく処理され保存された画像にメタデータを書き込む方法がわかりません。それをシンプルに保つために、私の流れは次のとおりです。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に追加するにはどうすればよいですか?

答えて

6

あなたはimwriteでこれを行うには(非常に)限られた能力を持っている:JPEGのためにそれだけBitDepthCommentModeQualityを受け入れます。 ModeQualityiminfoから返されません。あなたが行うことができますimwriteで :

それ以外
iminfo = imfinfo('Base_Pic.jpg') 
imwrite(...,'BitDepth',iminfo.BitDepth, 'Comment',iminfo.Comment); 

は、私の知る限りでは画像処理ツールボックス/ Matlabのでこれを行う方法はありません。あなたがTIFFや医学的な画像を持っている場合、それを行うツールボックスの数がありますが、私はファイル交換であってもJPEGのためにこれまで見つけたことがありません...

あなたのシステムにexiftoolがある場合、

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]を使用してそれらを書き戻すことができ、例えば:今タグ名とタグ値、例えばのリストが含まれてい

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

infoを使用exiftool -Make=Apple -Model="iPhone 4" ...

それとも、1本のファウルヒットで「すべてを」それらをコピーすることができます:あなたが読んでできる実行可能である、あなたはexiftoolの使用を作ることができ分野の、あまりにも多くの変更されていない場合は

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

私はおそらくのような何かをしたい... "TIFFファイルに画像データとメタデータのエクスポート" を

関連する問題