أهلا
هذه ليست مشكلة ولكن تعذر العثور على أماكن أخرى للحصول على مثل هذه المساعدة.
حاولت إنشاء عارض ويب 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);
النتيجة تبدو غير صحيحة.
شكرا على اي مساعدة.
يعتبر،
يو
هل يمكن أن تكون مشكلة من نوع عمود رئيسي؟
ثلاثة: matrix4 () هو colummajor ،
http://threejs.org/docs/api/math/Matrix4.html
بينما المصفوفات في openMVG هي rowmajor.
س.
كنت أفكر في الأمر نفسه ، هل يمكنك محاولة ضبط تبديل مصفوفة التدوير؟
سأكون مهتمًا جدًا برؤية ما توصلت إليه مع yuyou كما فعلت القليل من العمل في threejs من قبل. :) الرجاء تضمين ارتباط عندما تستطيع!
بفضل simogasp و pmoulon ، جعلها التحويل يعمل. انظر لقطة الشاشة المرفقة. للطائرة وجهان ملونان: أصفر وأبيض.
سوف أشارك الرمز بعد إضافة مؤشر عادي وتنظيفه.
يمكنك الحصول على عارض مبسط ولكنه عامل من https://gist.github.com/yuyou/2665238329ca34f0288b073d735a7bcb
يستخدم البرامج النصية المستضافة عن بُعد لتوفير وقتك للاختبار السريع. ما عليك سوى حفظ الملف في مكانك المحلي حيث يجب أن يوجد ملف "sfm_data.json" (أو قم بتغيير السطر 69 وفقًا لذلك). اختياريًا ، يمكنك وضع جميع صور الإطار الرئيسي تحت نفس الدليل ، وتغيير المتغير "load_image" إلى "true" لإظهار الصور المقدمة في الجزء الخلفي من "البطاقات" الكاميرا.
عملت مع FireFox و Safari. يعمل Chrome فقط عندما يتم تقديم "sfm_data.json" من خادم عبر عنوان URI صالح.
شكرا لك yuyou
لقد اختبرت ذلك في مكان ما وعملت بشكل جيد.
هنا بعض التعليقات البسيطة:
يجب أن نرى كيف يمكننا شحنه باستخدام OpenMVG