का उपयोग कर बादल बिंदु के प्रक्षेप जाओ मैं एक बादल बिंदु एक व्यक्ति के पीछे से photogrammetry से प्राप्त की है। मैं नियमित ग्रिड प्राप्त करने के लिए इसे अलग करने की कोशिश कर रहा हूं, और इसके लिए मैं अब तक अच्छे परिणाम के साथ scipy.interpolate
का उपयोग कर रहा हूं। समस्या है: समारोह मैं (scipy.interpolate.griddata
) का उपयोग कर रहा में विमान एक्स, वाई cloudpoint के उत्तल पतवार का उपयोग करता है, इस प्रकार कुछ मूल्यों है कि मूल सतह है, जो एक अवतल परिधि है में मौजूद नहीं है परिणाम के रूप में दे रही है।केवल 2 डी में "वैध" अंक SciPy/Numpy
निम्न उदाहरण से पता चलता बाईं ओर स्थित मूल cloudpoint, परिणाम (जो क्षैतिज लाइनों के रूप में प्रदर्शित किया जाता है वास्तव में अंक के एक घने लाइन के आकार का बादल है) कि griddata
मुझे बीच में देता है, और परिणाम मैं चाहते हैं एक्स, वाई विमान पर क्लाउडपॉइंट की "छाया" के दाएं - सही तरीके से प्राप्त करें, जहां मूल सतह में मौजूद गैर-मौजूदा बिंदु शून्य या नैन होंगे।
मैं मैं निकाल सकते जेड cloudpoint पर समन्वय और निकटता के लिए प्रत्येक ग्रिड स्थिति की जांच पता है, लेकिन यह इतना जानवर बल है, और मेरा मानना है कि इस बिंदु-क्लाउड एप्लिकेशन पर एक आम समस्या नहीं होनी चाहिए । एक और संभावना बिंदु बादल से अधिक प्रदर्शन करने के लिए, एक numpy मुखौटा या बूलियन 2 डी सरणी के लिए griddata
से परिणाम पर "लागू" खोजने कुछ numpy आपरेशन हो सकता है, लेकिन मैं किसी भी नहीं मिला (इन आपरेशनों से परे एक सा कर रहे हैं मेरे बेवकूफ/Scipy ज्ञान)।
कोई सुझाव?
पढ़ने के लिए धन्यवाद!
मैं व्यस्त किया गया है, लेकिन अपने जवाब के रूप में मैं अब पढ़ (पहले से ही चल रहा है मेरे सिर में बहुत कुछ खरोंच) भावना का एक बहुत बनाता है। अंत में, मैं प्रत्येक ग्रिड पॉइंट्स के लिए इंटरपोलेशन करने के लिए केडीटी का उपयोग कर रहा हूं, ऐसा कर रहा हूं: मैं NaN का ग्रिड बना देता हूं; मैं प्रत्येक ग्रिड नोड का परीक्षण, केडीटी के साथ, आसपास की उपस्थिति के लिए (क्लाउडपॉइंट के जेड समन्वय को अनदेखा कर रहा हूं); यदि आसपास है, तो आरबीएफ का उपयोग करके इंटरपोलेट करें (अंत में, इस समस्या के लिए griddata इतना अच्छा नहीं था), और आउटपुट के संबंधित नोड को परिणाम असाइन करें। – heltonbiker