सामग्री प्लेसहोल्डर उत्पन्न करने का तरीका सीखकर संवर्धित वास्तविकता प्रोग्रामिंग में पहला कदम उठाएं।

जब संवर्धित वास्तविकता की बात आती है, तो आभासी वस्तुओं और ओवरले की स्थिति महत्वपूर्ण होती है। यहीं पर ArUco मार्कर आते हैं। ArUco मार्कर सरल बाइनरी पैटर्न हैं जिन्हें आप डिजिटल सामग्री को ओवरले करने के लिए वास्तविक शब्द दृश्यों में रख सकते हैं।

आप उन्हें कागज पर प्रिंट कर सकते हैं, उन्हें स्क्रीन पर प्रदर्शित कर सकते हैं, या उन्हें वास्तविक दुनिया की वस्तुओं पर प्रोजेक्ट कर सकते हैं। यह लचीलापन उन्हें कंप्यूटर विज़न अनुप्रयोगों में एक लोकप्रिय विकल्प बनाता है।

ArUco मॉड्यूल और OpenCV लाइब्रेरी

ArUco मार्कर उत्पन्न करने के लिए, आपको ArUco मॉड्यूल की आवश्यकता है जो OpenCV लाइब्रेरी का हिस्सा है। OpenCV एक लाइब्रेरी है जिसमें विकास के लिए बहुत सारे टूल और फ़ंक्शन शामिल हैं कंप्यूटर विज़न अनुप्रयोग.

मॉड्यूल आपको ArUco मार्करों को उत्पन्न करने, पहचानने और पहचानने की अनुमति देता है। यह आपको मुद्रा का अनुमान लगाने की भी अनुमति देता है। यह बदले में आभासी वस्तुओं को वास्तविक दुनिया के साथ संरेखित करना संभव बनाता है जिससे एक गहन और निर्बाध उपयोगकर्ता अनुभव प्राप्त होता है।

instagram viewer

अपना वातावरण स्थापित करना

एक नया पायथन वर्चुअल वातावरण बनाएं. यह सुनिश्चित करेगा कि जब आप अपने प्रोजेक्ट की आवश्यक लाइब्रेरी स्थापित कर रहे हों तो कोई पैकेज संस्करण विरोध न हो। फिर टर्मिनल पर आगे बढ़ें और OpenCV स्थापित करने के लिए निम्न कमांड चलाएँ।

पाइप ओपनसीवी-योगदान-पायथन स्थापित करें

उपरोक्त आदेश OpenCV योगदान लाइब्रेरी स्थापित करता है। इसमें ArUco मॉड्यूल शामिल है जिसका उपयोग आप मार्कर जनरेटर बनाने के लिए करेंगे। सुनिश्चित करें कि आप यह संस्करण स्थापित करें, OpenCV-पायथन नहीं, क्योंकि बाद वाले में वह कार्यक्षमता शामिल नहीं है जिसकी आपको आवश्यकता है।

पूर्ण स्रोत कोड a में उपलब्ध है गिटहब रिपॉजिटरी.

ArUco मेकर जेनरेटर प्रोग्राम बनाना

ArUco मार्कर प्रोग्राम बनाना काफी सरल है। ऐसा इसलिए है क्योंकि AruCo मॉड्यूल आपके लिए अधिकांश भारी सामान उठाता है। अपने कोड में इसके कार्यों और उपकरणों का उपयोग करने में सक्षम बनाने के लिए OpenCV को आयात करके शुरुआत करें।

आयात सीवी2

एक फ़ंक्शन को परिभाषित करें जो एक विशिष्ट आईडी के साथ एकल मार्कर उत्पन्न करेगा। यह तब पूरा होगा जब मार्करों की थोक में आवश्यकता नहीं होगी।

डीईएफ़generate_single_marker(aruco_dict):
मार्कर_आकार = पूर्णांक (इनपुट("मार्कर आकार दर्ज करें:"))
मार्कर_आईडी = पूर्णांक (इनपुट("मार्कर आईडी दर्ज करें:"))

मार्कर_आईएमजी = cv2.aruco.generateImageMarker (aruco_dict, मार्कर_आईडी,
मार्कर_आकार)

cv2.imwrite("मार्कर_{}.png".प्रारूप (मार्कर_आईडी), मार्कर_आईएमजी)

मार्कर_आईएमजी = cv2.imread("मार्कर_{}.png".प्रारूप (मार्कर_आईडी))

cv2.imshow("मार्कर", मार्कर_आईएमजी)

प्रिंट("आयाम:", मार्कर_img.shape)

cv2.waitKey(0)

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

डीईएफ़जेनरेट_बल्क_मार्कर(aruco_dict):
मार्कर_आकार = पूर्णांक (इनपुट("मार्कर आकार दर्ज करें:"))
num_markers = int (इनपुट("उत्पन्न करने के लिए मार्करों की संख्या दर्ज करें:"))
मार्कर_आईएमजीएस = []

के लिए मार्कर_आईडी में रेंज (num_markers):
मार्कर_आईएमजी = cv2.aruco.generateImageMarker (aruco_dict, मार्कर_आईडी,
मार्कर_आकार)

cv2.imwrite("मार्कर_{}.png".प्रारूप (मार्कर_आईडी), मार्कर_आईएमजी)
मार्कर_आईएमजीएस.जोड़ें (cv2.imread("मार्कर_{}.png".प्रारूप (मार्कर_आईडी)))

के लिए मार्कर_आईएमजी में मार्कर_आईएमजीएस:
cv2.imshow("मार्कर", मार्कर_आईएमजी)
प्रिंट("आयाम:", मार्कर_img.shape)
cv2.waitKey(0)

अंत में, एक मुख्य फ़ंक्शन को परिभाषित करें जो प्रोग्राम के प्रवाह को नियंत्रित करेगा और उपयोगकर्ता से वांछित ऑपरेशन के लिए पूछेगा। सुनिश्चित करें कि प्रोग्राम निष्पादित होने पर यह पहले चलता है।

डीईएफ़मुख्य():
aruco_dict = cv2.aruco.getPreDefinedDictionary (cv2.aruco. DICT_4X4_50)

उपयोगकर्ता_इनपुट = इनपुट("एकल मार्कर उत्पन्न करने के लिए '1' दबाएँ या"
"'2' थोक में मार्कर उत्पन्न करने के लिए:")

अगर उपयोगकर्ता_इनपुट == "1":
जेनरेट_सिंगल_मार्कर (aruco_dict)
एलिफ़ उपयोगकर्ता_इनपुट == "2":
जेनरेट_बल्क_मार्कर (aruco_dict)
अन्य:
प्रिंट("अमान्य निवेश। कृपया पुन: प्रयास करें।")

अगर __नाम__ == "__मुख्य__":
मुख्य()

अब एकल मार्कर या थोक में उत्पन्न करने के लिए प्रोग्राम चलाएँ। प्रोग्राम का आउटपुट कुछ इस तरह दिखेगा:

आउटपुट एक उत्पन्न ArUco मार्कर दिखाता है। प्रोग्राम प्रत्येक मार्कर को उसके नाम के अंत में एक नंबर के साथ सहेजता है, जो मार्कर आईडी का प्रतिनिधित्व करता है।

ArUco मार्कर उत्पन्न करने के बाद आगे क्या?

ArUco मार्कर तैयार करने के बाद, आप अपना स्वयं का सरल कंप्यूटर विज़न एप्लिकेशन बना सकते हैं। इससे आपको यह सीखने में मदद मिलेगी कि वास्तविक दुनिया के दृश्यों पर डिजिटल जानकारी को ओवरले करने के लिए मार्करों का उपयोग कैसे करें। यह आपको यह समझने में भी मदद करेगा कि मार्कर संपूर्ण सहज और गहन उपयोगकर्ता अनुभव में कैसे योगदान करते हैं।