Monday, 15 March 2010

alignment - How can I extrapolate the transformation matrix from a MeshLab project file containing two aligned meshes? -


मेरे पास दो मेज़ हैं: जाल और मेष बी । < / P>

मैं मेशलैब के साथ काम कर रहा हूं और मुझे उनको संरेखित करने की आवश्यकता है और फिर एक रूपांतरण मैट्रिक्स एक्सट्रपलेशन करें जो A पर बी लाती है।

जब मैं संरेखण उपकरण, मैं गोंद ए और मैंने इसे आधार मेष के रूप में सेट किया है फिर मैं बी पर प्वाइंट बेस ग्लूइंग करता हूं और वैकल्पिक रूप से मैं प्रोसेस बटन का उपयोग करता हूं प्रक्रिया के अंत में, मैं MeshLab प्रोजेक्ट को सहेजता हूं।

परिवर्तन मैट्रिक्स को एक्सट्रपोल करने के लिए जो कि बी पर ए लाती है, मैं सिर्फ .mlp परियोजना फ़ाइल खोलता हूं (यह वास्तव में एक सादा पाठ फ़ाइल है) और मैंने डेटा पढ़ा दुर्भाग्य से, मुझे जो मिलता है नहीं मुझे क्या उम्मीद है ज़ाहिर है, ए और बी के लिए दो मेष हैं। इनमें से प्रत्येक के लिए एक रूपांतरण मैट्रिक्स है। मुझे उम्मीद है कि जाल ए (एक सरेस से जोड़ा हुआ और बेस मेष के रूप में सेट) की पहचान मैट्रिक्स है, जबकि मेष बी में बी पर ए लाने के लिए आवश्यक परिवर्तन मैट्रिक्स है। कभी-कभी मेष का मैट्रिक्स पहचान के करीब है, लेकिन अभी भी नहीं पहचान एक।

यहां एक उदाहरण है:

  & lt;! DOCTYPE MeshLabDocument & gt; & LT; MeshLabProject & gt; & LT; MeshGroup & gt; & Lt; MLMesh लेबल = "ए" फाइलनाम = "एस्त्ल" & gt; & LT; MLMatrix44 & gt; 1 3.61241e-09 1.85292e-11 -5.04461e-08 -3.61241e-09 1 3.45518-10 1.03514e-07 -1.85292 -11 -3.45518e-10 1 5.35603 ई-09 0 0 0 1 & lt; / MLMatrix44 & gt; & Lt; / MLMesh & gt; & Lt; MLMesh लेबल = "बी" फ़ाइल नाम = "बीएसटीएल" & gt; & LT; MLMatrix44 & gt; -0.670956 -0.741136 -0.0231387 78.366 0.738444 -0.665039 -0.111463 24.2717 0.0672212 -0.0 918734 0.9 9 3499 33.6056 0 0 1 & lt; / MLMatrix44 & gt; & Lt; / MLMesh & gt; & Lt; / MeshGroup & gt; & LT; RasterGroup / & gt; & Lt; / MeshLabProject & gt; अब, मेरी सरल धारणा यह है कि किसी कारण से MeshLab ए को बी पर ठीक से नहीं ला सकता है। इसके बजाय यह ए को बहुत करीब आता है, लेकिन इसे कम से कम ए के समायोजित करने की आवश्यकता है एक बेहतरीन मैच के लिए भी स्थिति।   

यदि हां, तो सर्वश्रेष्ठ परिवर्तन करने के लिए मैं निम्न कार्य करना चाहता हूं:

[बी मैट्रिक्स] * INVERTED [एक मैट्रिक्स] = [एक मैट्रिक्स पर बी]

क्या यह सही है?

< पी> आदेश मामलों मैट्रिक्स एम मेष बी को पी करने के लिए लाता है, मैट्रिक्स मा पी को स्थानांतरित करने के लिए मेष ए लाता है। इसी तरह, Ma_invert एक जाल को स्थिति पी से जाल ए के स्थान तक लाता है।

एमबी को जाल बी को लागू करें, अब यह पी पर पहुंचा है:

पी से पी :

B_aligned = Ma_inverse * B_transformed

तो संयुक्त ऑपरेशन ऐसा दिखना चाहिए:

B_aligned = Ma_inverse * Mb * B


No comments:

Post a Comment