Openmvg: [سؤال] تصور sfm_data في ThreeJS

تم إنشاؤها على ١٦ سبتمبر ٢٠١٦  ·  6تعليقات  ·  مصدر: openMVG/openMVG

أهلا

هذه ليست مشكلة ولكن تعذر العثور على أماكن أخرى للحصول على مثل هذه المساعدة.

حاولت إنشاء عارض ويب sfm_data بسيط باستخدام ThreeJS lib. لا يُظهر ملف Cloud_and_poses PLY الأصلي اتجاه الكاميرا (العناصر الخارجية). تمكنت حتى الآن من تصور جميع النقاط والكاميرات (باستخدام THREE.PlaneGeometry) بقيم موضعها. ومع ذلك ، فإن سؤالي هو كيفية استخدام قيم دوران العناصر الخارجية. حاولت استخدام هذه القيم مباشرة كمصفوفة تناوب (4x4) ، على سبيل المثال ، على النحو التالي:

var rotation = sfm_data.extrinsics[i].value.rotation;
var rotationMatrix = new THREE.Matrix4();
          rotationMatrix.set(
                        rotation[0][0],  rotation[0][1],  rotation[0][2],  0,
                        rotation[1][0], rotation[1][1],rotation[1][2],  0,
                        rotation[2][0], rotation[2][1],rotation[2][2] , 0,
                        0,  0,  0,  1 );
plane.quaternion.setFromRotationMatrix(rotationMatrix);

النتيجة تبدو غير صحيحة.

شكرا على اي مساعدة.

يعتبر،

يو

question

ال 6 كومينتر

هل يمكن أن تكون مشكلة من نوع عمود رئيسي؟
ثلاثة: matrix4 () هو colummajor ،
http://threejs.org/docs/api/math/Matrix4.html
بينما المصفوفات في openMVG هي rowmajor.

س.

كنت أفكر في الأمر نفسه ، هل يمكنك محاولة ضبط تبديل مصفوفة التدوير؟

سأكون مهتمًا جدًا برؤية ما توصلت إليه مع yuyou كما فعلت القليل من العمل في threejs من قبل. :) الرجاء تضمين ارتباط عندما تستطيع!

بفضل simogasp و pmoulon ، جعلها التحويل يعمل. انظر لقطة الشاشة المرفقة. للطائرة وجهان ملونان: أصفر وأبيض.

سوف أشارك الرمز بعد إضافة مؤشر عادي وتنظيفه.

screen shot 2016-09-16 at 14 07 20

يمكنك الحصول على عارض مبسط ولكنه عامل من https://gist.github.com/yuyou/2665238329ca34f0288b073d735a7bcb

يستخدم البرامج النصية المستضافة عن بُعد لتوفير وقتك للاختبار السريع. ما عليك سوى حفظ الملف في مكانك المحلي حيث يجب أن يوجد ملف "sfm_data.json" (أو قم بتغيير السطر 69 وفقًا لذلك). اختياريًا ، يمكنك وضع جميع صور الإطار الرئيسي تحت نفس الدليل ، وتغيير المتغير "load_image" إلى "true" لإظهار الصور المقدمة في الجزء الخلفي من "البطاقات" الكاميرا.

عملت مع FireFox و Safari. يعمل Chrome فقط عندما يتم تقديم "sfm_data.json" من خادم عبر عنوان URI صالح.

شكرا لك yuyou

لقد اختبرت ذلك في مكان ما وعملت بشكل جيد.

image

image

هنا بعض التعليقات البسيطة:

  • أعتقد أن وجود زر لتغيير حجم النقطة قد يكون مفيدًا.
  • تلقيت هذا الخطأ التحذيري إذا استخدمت load_image إلى true:

    • ربما يمكنك اعتبار أن لديك مكالمة أقرب إلى واجهة برمجة التطبيقات الفعلية.

      تم إهمال THREE.ImageUtils.loadTexture. استخدم THREE.TextureLoader () بدلاً من ذلك

يجب أن نرى كيف يمكننا شحنه باستخدام OpenMVG

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات