FreeImage المحمولة تعويم الخريطة (PFM) RGB قناة النظام

StackOverflow https://stackoverflow.com/questions/4902939

  •  29-10-2019
  •  | 
  •  

سؤال

أنا حاليا باستخدام FreeImage لتحميل PFMS في برنامج يستخدم خلاف ذلك iplimages (نوع البيانات القديم ل OpenCV). إليك عينة من ما أقوم به (تجاهل الجزء حول IMG يجري مجموعة من الحصير، وهذا يرتبط ببعض الكود الآخر). giveacodicetagpre.

ما هو غريب هو أنه إذا كنت تستخدم FreeImage لتحميل JPEGS بدلا من ذلك عن طريق تغيير FIF_PFM إلى FIF_JPEG و CV_32FC3 إلى CV_8U، فإن هذا يعمل بشكل جيد، أي الصورة المنسوخة تخرج دون تغيير. هذا يجعلني أعتقد أن OpenCV و FreeImage يتفق عموما على طلب قنوات RGB، وأن المشكلة ترتبط ب PFMS على وجه التحديد وتنسيق غير موحد.

تمت كتابة PFMS I Loading مع هذا الرمز (ضمن "المعادلة الرسم البيانية المحلية ")، والتي يبدو أنها تكتبها في ترتيب RGB على الرغم من أنني قد أكون مخطئا حيال ذلك. يتطلب الأمر فقط البيانات من مصفوفة MATLAB ثلاثية الأبعاد من الزوجي ومقفزها في ملف باستخدام FWWRITE. أيضا، إذا قمت بتعديل هذا الرمز لكتابة PPMS بدلا من ذلك، فيمكنه عرضها في IrfanView، فهي تبدو صحيحة.

لذلك، فإن ذلك يتركني أفكر في أخذ بيانات الملف لتكون BGR المرتبة على القرص بالفعل، ولا ينبغي أن يكون كذلك.

أي أفكار؟ هل هناك خطأ في قراءة FreeImage من PFMS، أم أنه هناك شيء أكثر دقة هنا؟ شكرا

هل كانت مفيدة؟

المحلول

حسنًا ، لم يتم حل هذا الأمر مطلقًا ؛باختصار ، يتفق FreeImage و OpenCV على ترتيب قناة الألوان (BGR) عند تحميل معظم تنسيقات الصور ، ولكن ليس عند تحميل PFMs.لا يمكنني إلا أن أفترض أن صانعي FreeImage قد أساءوا تفسير المواصفات المعترف بها غير القوية للغاية لـ PFM.نظرًا لأنني كنت أستخدم FreeImage فقط لقراءة / كتابة PFMs ، وكان من الصعب جدًا إعادة البيانات إلى بنية FreeImage بعد المعالجة باستخدام وظائف OpenCV ، فقد كتبت كود قراءة / كتابة PFM الخاص بي والذي اتضح أنه بسيط للغاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top