5

sceneमैं कैसे के रूप में ऊपर दिखाया गया एक दृश्य की एक छवि है छवियों

मान लीजिए में ज्यामिति के इस प्रकार खोजने के लिए। संभवतः इसी तरह की वस्तुओं के बगल में एक ब्लॉब के साथ एक ध्रुव के साथ एक ध्रुव। मैं लाल सर्कल द्वारा चिह्नित ब्लॉब कैसे ढूंढ सकता हूं (एक बाइनरी छवि जो दर्शाती है कि कौन से पिक्सल ब्लॉब से संबंधित हैं)।

ध्यान दें कि ब्लॉब के साथ ध्रुव को मनमाने ढंग से घुमाया जा सकता है और आकार भिन्न हो सकता है।

+0

यदि वे दोनों छवियों में दिखाई देने वाले एकमात्र आंकड़े हैं तो यह घुमावदार सीमाओं के लिए पिक्सेल सरणी के माध्यम से एक खोज है। आपके पास इस तरह की सीमा मिलने के पल में सर्कल के केंद्र की गणना करने के लिए पर्याप्त है। – ashley

+0

और यह कैसे प्राप्त कर सकता है? – Leo

उत्तर

1

क्या आप इसे 4 चरणों में करने की कोशिश कर सकते हैं?

  1. सर्किल का पता लगाने की तरह: writing robust (color and size invariant) circle detection with opencv (based on Hough transform or other features)
  2. लाइन का पता लगाने, जैसे: Finding location of rectangles in an image with OpenCV
  3. पड़ोसी लाइनों (संयोजन प्रत्येक रेखा खंड आप प्रारंभ और अंत बिंदु स्थिति है के लिए द्वारा आयत स्थिति का पता करें, तो आप भी दिशा का पता प्रत्येक लाइन सेगमेंट का। ताकि आप यह पता लगा सकें कि दो कनेक्टिंग लाइन सेगमेंट (जिनके एंडपॉइंट्स बंद हैं) ऑर्थोगोनल हैं। आपका लक्ष्य प्रत्येक आयत के लिए 3 ऐसे सेगमेंट ढूंढना है।)

  4. प्रत्येक की सापेक्ष स्थिति की जांच करें सर्कल और आयताकार यह देखने के लिए कि क्या कोई जोड़ी knob आकार बना सकती है।

1

एक दृष्टिकोण Viola-Jones object detection framework का उपयोग कर सकता है।

हालांकि ढांचे का ज्यादातर चेहरे का पता लगाने के लिए उपयोग किया जाता है - यह वास्तव में आपके द्वारा एल्गोरिदम को खाने वाली सामान्य वस्तुओं के लिए डिज़ाइन किया गया है। जो अपनी सुविधाओं के रूप में छवियों से पैटर्न उत्पन्न करता है -


एल्गोरिथ्म मूल विचार एक मशीन सीखने एल्गोरिथ्म के लिए "अच्छा वस्तु" (आप के लिए क्या देख रहे हैं) और "बुरा वस्तुओं" के नमूने को खिलाने के लिए है।

वर्गीकरण के दौरान - एक स्लाइडिंग विंडो का उपयोग करके एल्गोरिदम ऑब्जेक्ट को "मैच" की खोज करेगा (क्लासिफायर ने सकारात्मक उत्तर दिया)।


एल्गोरिथ्म supervised learning का उपयोग करता है और इस प्रकार उदाहरण (सकारात्मक और नकारात्मक दोनों वाले) की एक लेबल सेट

+0

धन्यवाद, लेकिन मैं बल्कि एक आसान समाधान होगा। यह कुछ हद तक कम्प्यूटेशनल गहन है (रीयलटाइम होने के बावजूद)। इसके अलावा, मेरे पास वास्तव में "ब्लॉब" जैसा दिखता है कि लेबल किए गए सेट की तैयारी करना थोड़ा अनावश्यक लगता है। मैं एक पुनरावृत्ति ज्यामिति मिलान तकनीक की तरह कुछ खोजने की उम्मीद कर रहा था। – Leo

0

मुझे यकीन है कि छवि प्रसंस्करण में कुछ सीमा-नक्शा एल्गोरिथ्म यह करने के लिए नहीं है कर रहा हूँ की आवश्यकता है।

अन्यथा, यहां एक त्वरित फिक्स है: "अनदेखा क्षेत्र" के केंद्र में एक पिक्सेल चुनें, जो प्रारंभ में पूरी छवि है। क्षेत्र के सीमाओं पर समाप्त होने वाले 4 दिशाओं पर क्षैतिज और ऊर्ध्वाधर रेखाओं का पता लगाएं और मूल्य 0 से 1 या उपाध्यक्ष में परिवर्तनों को ढूंढें।

प्रत्येक ऐसे मूल्य स्विच का पता लगाएं और प्रत्येक आकृति (चरण-ए) की सीमा को पूरा करें। जोन के लिए भी ऐसा ही करें जो अभी भी अनदेखा नहीं है: कुछ केंद्र पर प्रारंभ करें और केंद्र सीमा से केंद्र को जोड़ने वाली लाइनों के माध्यम से या किसी ज्ञात क्षेत्र की सीमा पर पिक्सेल के माध्यम से स्किम करें।

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

टेंगेंसी के इन दो बिंदुओं के लिए प्रत्येक लंबवत रेखाएं आपके आकृति में लाल सर्कल के केंद्र में छेड़छाड़ करती हैं।

0

आप छवि को विभाजित कर सकते हैं। फिर मंडलियों को खोजने के लिए एक हफ़-ट्रांसफॉर्म में योगदान करने के लिए सेगमेंट में केवल पिक्सल का उपयोग करें। फिर आपके पास केवल सर्कल के साथ सेगमेंट होंगे। आप आयतों को खोजने के लिए एक संशोधित आटा परिवर्तन का उपयोग कर सकते हैं। तब 'सर्वश्रेष्ठ' आयताकार और वर्ग संयोजन आपका मैच होगा। यह बहुत कम्प्यूटेशनल रूप से मंशाजनक है।

यदि आपके पास पहले से ही इन बाइनरी चित्र हैं, तो एक और दृष्टिकोण, किनारे के साथ यात्रा की दूरी की तुलना में सेंट्रॉइड की दूरी ले कर एक (उदाहरण के लिए 256 बिन) नमूना में बदलना है।यदि आप केंद्र पर दूर से दूर बिंदु पर शुरू करते हैं तो आपके पास काफी घूर्णनशील मजबूत फीचरवेक्टर होता है।

संबंधित मुद्दे