लाइन डिटेक्शन अक्सर हफ़ ट्रांसफॉर्म का उपयोग करने के लिए नेतृत्व करते हैं, कैनी एज डिटेक्टर और समोच्च पहचान केवल आवश्यक होने पर सुविधाजनक प्री-प्रोसेसर के रूप में कार्य करती है।
आप समानांतर रेखाओं है, का पता लगाने के लिए लाइनों
void HoughLines(InputArray image, OutputArray lines, double rho, double theta, int threshold, double srn=0, double stn=0)
का उपयोग जहां दूसरा पैरामीटर का पता लगाने में शामिल होंगे:
लाइनों - लाइनों के उत्पादन वेक्टर। प्रत्येक पंक्ति को दो-तत्व वेक्टर (ρ, θ) द्वारा दर्शाया जाता है। ρ समन्वय मूल (0, 0) (छवि के शीर्ष बाएं कोने) से दूरी है। θ रेडियंस में 0 रोटेशन कोण (0 ~ लंबवत रेखा, π/2 ~ क्षैतिज रेखा) है।
[opencv2refman.pdf]
इसका मतलब यह है, कि दो पंक्तियों के बीच की दूरी abs(rho1-rho2)
होना चाहिए, कि दूरी lines
के पहले कॉलम में पिक्सेल मूल्यों के बीच पूर्ण मतभेद हैं। (नोट: विधि CV_HOUGH_STANDARD
यहाँ होना चाहिए!)
गैर समानांतर रेखाओं तुम क्या आप एक दूरी के रूप में के बारे में सोच है, लेकिन फिर OpenCV अभी भी एक का पता चला लाइन के अंतिम बिंदुओं के निर्देशांक प्रदान कर सकते हैं निर्धारित करने की है।
आपको बस method = CV_HOUGH_PROBABILISTIC
का उपयोग करना होगा।
CV_HOUGH_PROBABILISTIC संभाव्य Hough को बदलने (मामले में और अधिक कुशल अगर चित्र कुछ लंबे रैखिक अनुभाग हैं)। यह पूरी लाइन के बजाय लाइन सेगमेंट देता है। प्रत्येक सेगमेंट बिंदुओं को शुरू करने और समाप्त करने के द्वारा दर्शाया गया है, और मैट्रिक्स सीवी_32SC4 प्रकार के ( निर्मित अनुक्रम) होना चाहिए।
[opencv2refman.pdf]
आप भी अपने स्थापित OpenCV के प्रलेखन के भीतर opencv_tutorials.pdf
में एक ट्यूटोरियल पा सकते हैं।
स्रोत
2012-11-22 16:43:14
आपको अपनी पोस्ट में हस्ताक्षर जोड़ने की आवश्यकता नहीं है - आपका उपयोगकर्ता कार्ड स्वचालित रूप से जोड़ा जाता है। – Artemix