दो छवियों की तुलना करने और बाहरी बिंदुओं को त्यागने के लिए कौन सी विधि सबसे अच्छी है? Find_obj.cpp opencv उदाहरण में, वे FLANN का उपयोग करते हैं, लेकिन आउटलेर्स को नहीं छोड़ते हैं।

मैंने Kmeans या ग्राफ़ का उपयोग करने जैसी कुछ विधियाँ देखी हैं।

4
Wiliam 9 अगस्त 2011, 14:18
हाय मुझे पता है कि यह बहुत पुराना सवाल है लेकिन मैं भी उसी स्थिति में हूं। क्या मैं जान सकता हूँ कि SURF algo में आउटलेर्स को हटाने के लिए आपने किस एल्गो का उपयोग किया था?
 – 
alwaysLearn
7 अप्रैल 2015, 19:17

1 उत्तर

सबसे बढ़िया उत्तर

शोर के बिंदुओं को अस्वीकार करने और अपनी रुचि के बिंदुओं के बीच परिवर्तन को निर्धारित करने का एक काफी विश्वसनीय और कुशल तरीका है। आमतौर पर आउटलेर्स को अस्वीकार करने के लिए उपयोग किए जाने वाले एल्गोरिदम को RANSAC (http://en.wikipedia.org/wiki/RANSAC) के रूप में जाना जाता है, और परिवर्तन को निर्धारित करने के लिए उपयोग किया जाने वाला एल्गोरिदम कई रूप ले सकता है, लेकिन कला की सबसे वर्तमान स्थिति पांच-बिंदु एल्गोरिदम के रूप में जाना जाता है और इसे यहां< पाया जा सकता है। /a> -- MATLAB कार्यान्वयन यहां पाया जा सकता है। ध्यान दें कि यदि आप दो छवियों के बीच सटीक रोटेशन की परवाह नहीं करते हैं, तो भी आपको परिवर्तन को निर्धारित करने की आवश्यकता है - इस प्रकार आउटलेर्स की पहचान की जाती है।

दुर्भाग्य से मैं उन दोनों के संयुक्त कार्यान्वयन के परिपक्व कार्यान्वयन के बारे में नहीं जानता; RANSAC को लागू करने और इसे पाँच बिंदु एल्गोरिथ्म के साथ एकीकृत करने के लिए आपको शायद अपना कुछ काम करना होगा।

ओपनसीवी में एक कार्यान्वयन है जो आपके कार्य के लिए अधिक है (जिसका अर्थ है कि यह काम करेगा लेकिन आवश्यकता से अधिक समय लेगा) लेकिन बॉक्स से बाहर काम करने के लिए तैयार है। रुचि के कार्य को cv::findFundamentalMat (http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html#cv-findfundamentalmat) कहा जाता है।

2
Sean 9 अगस्त 2011, 20:03