سؤال
هل سمع أحد من قبل عن شيء قد يسهل العمل به XMP البيانات الوصفية في ماتلاب؟
على سبيل المثال، يمكن قراءة بيانات تعريف EXIF ببساطة باستخدام الملف exifread
يأمر -
output = exifread(filename);
لقد وجدت هذا الخيط، ولكن يبدو أنه ميت.
أفكر حاليًا في الخيارات التالية:
- كتابة ملف MEX باستخدام C++ XMP SDK
- استدعاء إجراءات Java باستخدام JAVA XMP SDK
لتلخيص السؤال هو:هل لديك أي فكرة عن كيفية قراءة/كتابة XMP في Matlab؟
المحلول 2
أنا وجدت الإجابة.أفضل طريقة هي التحميل ExifTool وأي محلل ماتلاب JSON.من الممكن استخراجه من أي تنسيق الملف، بما في ذلك .DNG
, .XMP
, .JPEG
, .TIFF
.
الخطوة 1:قم باستخراج المعلومات إلى ملف JSON مؤقت باستخدام
system(['exiftool -struct -j ' fileName '>' tempFile]);
الخطوة 2:اتصل بالمحلل اللغوي JSON في ملف tempFile
الخطوه 3:لديك البيانات في هيكل Matlab.
نصائح أخرى
XMP هو مجرد XML ، لذا يمكنك استخدام أي مربع أدوات MATLAB XML.مفضلتي الشخصية هي xml_io_tools .
إذا كنت ترغب في استخدام SDK لتجنب الاضطرار إلى تفسير ما تعنيه بتات XML يدويًا ، فمن بين خياريك ، يبدو الخيار Java الأفضل.يُعد استدعاء Java من MATLAB أمرًا مباشرًا ، ويمكنك تجنب متاعببناء الأشياء التي تنطوي عليها MEX.