اتخذ الخطوات الأولى في برمجة الواقع المعزز من خلال تعلم كيفية إنشاء عناصر نائبة للمحتوى.

عندما يتعلق الأمر بالواقع المعزز ، فإن تحديد موضع العناصر والتراكبات الافتراضية أمر بالغ الأهمية. وهنا يأتي دور علامات ArUco. علامات ArUco هي أنماط ثنائية بسيطة يمكنك وضعها في مشاهد الكلمات الحقيقية لتراكب المحتوى الرقمي.

يمكنك طباعتها على الورق أو عرضها على شاشة أو عرضها على كائنات حقيقية. هذه المرونة تجعلها خيارًا شائعًا في تطبيقات رؤية الكمبيوتر.

وحدة ArUco ومكتبة OpenCV

لإنشاء علامات ArUco ، تحتاج إلى وحدة ArUco وهي جزء من مكتبة OpenCV. OpenCV هي مكتبة تحتوي على الكثير من الأدوات والوظائف للتطوير تطبيقات الرؤية الحاسوبية.

تتيح لك الوحدة إنشاء علامات ArUco واكتشافها والتعرف عليها. كما يسمح لك بإجراء تقدير الوضع. وهذا بدوره يجعل من الممكن محاذاة الكائنات الافتراضية مع العالم الحقيقي مما يخلق تجربة مستخدم غامرة وسلسة.

إعداد بيئتك

قم بإنشاء بيئة افتراضية جديدة للبايثون. سيضمن ذلك عدم وجود تعارض في إصدار الحزمة عند تثبيت المكتبات المطلوبة لمشروعك. ثم تابع إلى المحطة وقم بتشغيل الأمر التالي لتثبيت OpenCV.

instagram viewer
نقطة تثبيت opencv-Contrib-python

يقوم الأمر أعلاه بتثبيت مكتبة مساهمة OpenCV. يحتوي هذا على وحدة ArUco التي ستستخدمها لإنشاء منشئ العلامات. تأكد من تثبيت هذا الإصدار ، وليس OpenCV-python ، لأن الأخير لا يتضمن الوظائف التي تحتاجها.

كود المصدر الكامل متاح في ملف مستودع جيثب.

إنشاء برنامج ArUco Maker Generator

إنشاء برنامج ArUco marker بسيط للغاية. هذا لأن وحدة AruCo تقوم بمعظم الرفع الثقيل نيابة عنك. ابدأ باستيراد OpenCV لتمكينك من استخدام وظائفه وأدواته في التعليمات البرمجية الخاصة بك.

يستورد السيرة الذاتية 2

حدد وظيفة من شأنها إنشاء علامة واحدة بمعرف معين. هذا سوف يلبي احتياجات عندما لا تكون هناك حاجة للعلامات بشكل مجمّع.

defإنشاء علامة واحدة(aruco_dict):
marker_size = int (المدخلات ("أدخل حجم العلامة:"))
marker_id = int (المدخلات ("أدخل معرف العلامة:"))

marker_img = cv2.aruco.generateImageMarker (aruco_dict ، marker_id ،
علامة_حجم)

cv2.imwrite ("علامة _ {}. png".format (marker_id)، marker_img)

marker_img = cv2.imread ("علامة _ {}. png".format (marker_id))

cv2.imshow ("علامة"، marker_img)

مطبعة("أبعاد:"، marker_img.shape)

cv2.waitKey (0)

ثم حدد وظيفة ستولد عددًا معينًا من العلامات بشكل مجمّع. سيختلف عدد العلامات التي يمكنك إنشاؤها وفقًا لملف قاموس OpenCV انت تستخدم. هذا لأن بعض القواميس تدعم إنشاء علامات أكثر من غيرها.

defإنشاء علامات_مجمعة(aruco_dict):
marker_size = int (المدخلات ("أدخل حجم العلامة:"))
num_markers = int (المدخلات ("أدخل عدد العلامات المراد إنشاؤها:"))
marker_imgs = []

ل معرّف_العلامة في النطاق (عدد_العلامات):
marker_img = cv2.aruco.generateImageMarker (aruco_dict ، marker_id ،
علامة_حجم)

cv2.imwrite ("علامة _ {}. png".format (marker_id)، marker_img)
marker_imgs.append (cv2.imread ("علامة _ {}. png".format (marker_id)))

ل علامة_صورة في علامة_صورة:
cv2.imshow ("علامة"، marker_img)
مطبعة("أبعاد:"، marker_img.shape)
cv2.waitKey (0)

أخيرًا ، حدد الوظيفة الرئيسية التي ستتحكم في تدفق البرنامج واطلب من المستخدم العملية المطلوبة. تأكد من تشغيله أولاً عند تنفيذ البرنامج.

defرئيسي():
aruco_dict = cv2.aruco.getPredefinedDictionary (cv2.aruco. DICT_4X4_50)

user_input = المدخلات ("اضغط على" 1 "لإنشاء علامة واحدة أو"
"2" لإنشاء علامات مجمعة: ")

لو user_input == "1":
إنشاء علامة_فردة (aruco_dict)
أليف user_input == "2":
توليد_لمؤشرات_المجموعة (aruco_dict)
آخر:
مطبعة("مدخل غير صالح. حاول مرة اخرى.")

لو __name__ == "__رئيسي__":
رئيسي()

قم الآن بتشغيل البرنامج لإنشاء علامة واحدة أو مجمعة. سيبدو إخراج البرنامج كما يلي:

يُظهر الإخراج علامة ArUco التي تم إنشاؤها. يقوم البرنامج بحفظ كل علامة برقم في نهاية اسمها ، والذي يمثل معرف العلامة.

ماذا بعد إنشاء علامات ArUco؟

بعد إنشاء علامات ArUco ، يمكنك إنشاء تطبيق رؤية الكمبيوتر البسيط الخاص بك. سيساعدك هذا في تعلم كيفية استخدام العلامات لتراكب المعلومات الرقمية على مرئيات العالم الحقيقي. سيساعدك أيضًا على تقدير كيفية مساهمة العلامات في تجربة المستخدم السلسة والغامرة بالكامل.