2016-08-21 14 views
6

के पीछे टेनिस कोर्ट लाइनों का पता लगाता है मैं फोन से रिकॉर्ड किए गए वीडियो का उपयोग कर एक टेनिस कोर्ट डिटेक्टर को लागू करने की कोशिश कर रहा हूं। मैंने इसे टेनिस कोर्ट के दूर कोने से फिल्माया।ओपनसीवी नेट

मूल छवि इस तरह है।

Original Image

OpenCV कैनी एज का पता लगाने और Hough लाइन्स परिवर्तन का उपयोग करना, मैं अपने खुद के आधे में लाइनों पता लगाने में सक्षम हूँ, लेकिन शुद्ध के पीछे लोगों को नहीं। मैं इस प्रक्रिया को कैसे सुधार सकता हूं और ज्ञात अदालत की लाइनें कैसे प्राप्त कर सकता हूं?

संसाधित छवि नीचे दी गई है।

Processed Image


2016-08-25

धन्यवाद लोग को अपडेट किया गया। मैं समझता हूं कि पता लगाई गई लाइनों को मॉडल लाइनों में फ़िट करके अदालत की रेखाएं प्राप्त करना समझ में आता है। मैं मॉडल फिट करने के लिए सबसे अच्छी लाइनों को खोजने के लिए संयोजी खोज करने की कोशिश नहीं कर रहा हूं। इसलिए, मैं कम्प्यूटेशनल जटिलता को कम करने के लिए क्षैतिज/लंबवत रेखाओं को अलग करने की कोशिश कर रहा हूं। मैंने गायब बिंदुओं (वीपी) को खोजने के लिए RANSAC की कोशिश की जो लाइनों के दो अलग-अलग समूहों को जोड़ती है, लेकिन शायद पहचान त्रुटि (?) के कारण विफल रही।

ध्रुवीय निर्देशांक में रेखा पैरामीटर की स्कैटर प्लॉट नीचे दी गई है। यह मूल रूप से अंक को दो समूहों में वर्गीकृत करना है: शीर्ष बिंदु जो क्षैतिज रेखा बनाते हैं; नीचे बाएं बिंदु जो गहरी ढलान वाली रेखा भी बनाते हैं। क्या उसे करने का कोई तरीका है? धन्यवाद

Polar Coord

उत्तर

3

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

वास्तव में आपको केवल एक ही कोने का पता लगाने की आवश्यकता है यदि आप कैमरा + लेंस की विशेषताओं को जानते हैं।

+0

हाय @Martin, धन्यवाद। मैंने आपके सुझाव का पालन किया लेकिन वहां अटक गया। मॉडलों में पता लगाई गई लाइनों को कैसे फिट करें? मैं संयोजी खोज की कोशिश करना चाहता था लेकिन मुझे लगता है कि यह बहुत धीमा होगा। क्या आपके पास अपडेट किए गए संपादन पर कोई सुझाव है? –

+0

@YeqingZhang opencv में कैमरा अंशांकन/3 डी अनुभाग पर एक नज़र डालें। टेनिस कोर्ट कैलिब्रेशन के लिए उपयोग किए जाने वाले शतरंज की तरह है - आप अदालत के तारों और छवि में उनके प्रक्षेपण में लाइनों के वास्तविक विश्व 3 डी निर्देशांक जानते हैं। –

2

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

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

+0

धन्यवाद @ ड्रू नोएक्स। मैंने गाऊशियन ब्लर की कोशिश की थी, लेकिन अभी भी कोई भाग्य नहीं है। सिग्नल बहुत कमजोर है ... मैंने कटाई और कमजोर होने के बावजूद लाइनों को पतला करने की भी कोशिश की, लेकिन मुझे लगता है कि कैनी एज फ़िल्टर से कुछ पता चला लाइनें वहां से गायब होंगी। –

1

धुंधला के लिए, एक द्विपक्षीय फिल्टर

उदाहरण इनपुट छवि का प्रयास करें:

input image

cv2.bilateralFilter(img_gray,30,25,75) 

उत्पादन छवि:

blurred image without losing court information