2012-01-29 12 views
9

मैटलैब में कुछ छवि प्रसंस्करण दिनचर्या लिखने में, मैंने पाया कि मुझे नहीं पता कि एक नई संसाधित और सहेजी गई छवि में मेटाडेटा कैसे लिखना है। यह सरल रखने के लिए, मेरे प्रवाह इस प्रकार है:मैटलैब में किसी छवि को मेटाडेटा कैसे जोड़ूं?

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 में कैसे जोड़ सकता हूं? जेपीईजी के लिए यह केवल BitDepth, Comment, Mode और Quality स्वीकार करता है:

उत्तर

6

आप एक (बहुत) सीमित imwrite में ऐसा करने की क्षमता है। और Mode और Qualityiminfo से वापस नहीं लौटें। imwrite में आप कर सकते हैं:

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

उसके अलावा, वहाँ छवि प्रसंस्करण उपकरण बॉक्स/Matlab के साथ के रूप में तक मुझे पता है यह करने के लिए एक तरीका नहीं है। यदि आपके पास टीआईएफएफ या मेडिकल इमेज हैं तो यह कई टूलबॉक्स हैं जो इसे करते हैं, लेकिन मुझे कभी भी फ़ाइल एक्सचेंज पर जेपीईजी के लिए कोई नहीं मिला है ...

यदि आपके पास 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

आप क्षेत्रों आप 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 
... 
संबंधित मुद्दे