OpenCV

2009-09-03 22 views
7

में लाइनों (हफ़ ट्रांसफॉर्म) की निकटता का परीक्षण कैसे करें (यह this previous question से अनुवर्ती है)।OpenCV

मैं चित्रों (स्कैन किए गए पाठ) में लाइनों का पता लगाने के लिए ओपनसीवी/हफ़ ट्रांसफॉर्म का सफलतापूर्वक उपयोग करने में सक्षम था; सबसे पहले यह कई लाइनों (पाठ की प्रति पंक्ति कम से कम एक पंक्ति) का पता लगाएगा, लेकिन परीक्षण-और-त्रुटि के माध्यम से 'थ्रेसहोल्ड' पैरामीटर को समायोजित करके, अब यह केवल "वास्तविक" रेखाओं का पता लगाता है।

('थ्रेसहोल्ड' पैरामीटर छवि आकार पर निर्भर है, जो किसी समस्या का थोड़ा सा है यदि किसी को विभिन्न संकल्पों की छवियों से निपटना है, लेकिन यह एक और कहानी है)।

मेरी समस्या यह है कि हफ़ ट्रांसफॉर्म कभी-कभी दो लाइनों का पता लगाता है जहां केवल एक ही होता है; वे दो रेखाएं एक-दूसरे के करीब हैं (जाहिर है) समानांतर हैं।

=> मैं कैसे पहचान सकता हूं कि दो रेखाएं लगभग समानांतर हैं और एक दूसरे के बहुत करीब हैं? (ताकि मैं केवल एक ही रख सकूं)।

+0

पर एक अच्छी छवि दिखायी गई है कि आपके पास लाइनों से कौन सा डेटा है? – Janusz

उत्तर

8

यदि आप मानक या मल्टीस्केल आटा का उपयोग करते हैं, तो आप ध्रुवीय निर्देशांक में रेखाओं के rho और theta निर्देशांक के साथ समाप्त हो जाएंगे। Rho उत्पत्ति की दूरी है, और थेटा आमतौर पर पता लगाया लाइन और वाई अक्ष के बीच कोण है। ओपनसीवी में आटा परिवर्तन के विवरणों को देखे बिना, यह उन निर्देशांकों में एक सामान्य नियम है: दो लाइनें लगभग समानांतर होंगी और बहुत ही करीब एक दूसरे के पास होंगी: - उनके थेटा लगभग समान हैं और उनके rhos लगभग समान हैं या - उनके थेटा 180 डिग्री के करीब हैं और उनके rhos एक दूसरे के नकारात्मक

मुझे उम्मीद है कि समझ में आता है।

+0

हाँ आप बिल्कुल सही हैं; मेरे प्रश्न पोस्ट करने के बाद मुझे यह पता चला; वास्तव में यह ओपनसीवी में वास्तव में सीधा है। धन्यवाद! – Bambax

+0

इसके अलावा, अगर कोई 'रिज़ॉल्यूशन' पैरामीटर उच्च सेट करता है, तो कम लाइनें पाई जाती हैं; और यही वह है जो मुझे वास्तव में चाहिए था। – Bambax

+0

हम rho और theta पैरामीटर के साथ 'लगभग' कीवर्ड में दहलीज कैसे सेट कर सकते हैं? उदाहरण के लिए यदि मैं जानना चाहता हूं कि क्या दो रेखाएं 0.5 रेडियन (थ्रेसहोल्ड = 0.5) के बीच अधिकतम कोण के साथ लगभग समानांतर हैं। –

0

यह थाटा लाइन और वाई-अक्ष के बीच कोण होने के बारे में दिलचस्प है।

आम तौर पर, rho और theta मानों को x-axis से कोण को रेखा में लंबवत रेखा के रूप में देखने के रूप में देखा जाता है। Rho तो इस लंबवत रेखा की लंबाई है। इस प्रकार, एक थेटा = 9 0 और rho = 20 का मतलब मूल से क्षैतिज रेखा 20 पिक्सल होगा। Hough Transform question