Farih.co.id
Home Programming Cara Membuat Generator Penanda ArUco Menggunakan Python

Cara Membuat Generator Penanda ArUco Menggunakan Python

how to create aruco marker using python

Dalam hal augmented reality, pemosisian objek dan overlay virtual sangat penting. Di situlah penanda ArUco masuk. Penanda ArUco adalah pola biner sederhana yang dapat Anda posisikan dalam adegan kata nyata untuk menghamparkan konten digital.


Anda dapat mencetaknya di atas kertas, menampilkannya di layar, atau memproyeksikannya ke objek dunia nyata. Fleksibilitas ini menjadikannya pilihan populer dalam aplikasi visi komputer.


Modul ArUco dan Perpustakaan OpenCV

Untuk menghasilkan penanda ArUco, Anda memerlukan modul ArUco yang merupakan bagian dari pustaka OpenCV. OpenCV merupakan library yang berisi banyak sekali tools dan fungsi untuk mengembangkan aplikasi computer vision.

Modul ini memungkinkan Anda membuat, mendeteksi, dan mengenali penanda ArUco. Ini juga memungkinkan Anda untuk melakukan estimasi pose. Hal ini pada gilirannya memungkinkan untuk menyelaraskan objek virtual ke dunia nyata menciptakan pengalaman pengguna yang imersif dan mulus.

Menyiapkan Lingkungan Anda

Buat lingkungan virtual Python baru. Ini akan memastikan bahwa tidak ada konflik versi paket saat Anda menginstal pustaka yang diperlukan proyek Anda. Kemudian lanjutkan ke terminal dan jalankan perintah berikut untuk menginstal OpenCV.

 pip install opencv-contrib-python

Perintah di atas menginstal pustaka contrib OpenCV. Ini berisi modul ArUco yang akan Anda gunakan untuk membuat generator penanda. Pastikan Anda menginstal versi ini, bukan OpenCV-python, karena yang terakhir tidak menyertakan fungsionalitas yang Anda perlukan.

Membuat Program Generator Pembuat ArUco

Membuat program penanda ArUco cukup sederhana. Ini karena modul AruCo melakukan sebagian besar pekerjaan berat untuk Anda. Mulailah dengan mengimpor OpenCV untuk memungkinkan Anda menggunakan fungsi dan alatnya dalam kode Anda.

 import cv2

Tentukan fungsi yang akan menghasilkan penanda tunggal dengan ID tertentu. Ini akan melayani ketika penanda tidak diperlukan dalam jumlah besar.

 def generate_single_marker(aruco_dict):
   marker_size = int(input("Enter the marker size: "))
   marker_id = int(input("Enter the marker ID: "))

   marker_img = cv2.aruco.generateImageMarker(aruco_dict, marker_id,
    marker_size)

   cv2.imwrite("marker_{}.png".format(marker_id), marker_img)

   marker_img = cv2.imread("marker_{}.png".format(marker_id))

   cv2.imshow("Marker", marker_img)

   print("Dimensions:", marker_img.shape)

   cv2.waitKey(0)

Kemudian tentukan fungsi yang akan menghasilkan sejumlah penanda secara massal. Jumlah penanda yang dapat Anda hasilkan akan bervariasi sesuai dengan kamus OpenCV Kau gunakan. Ini karena beberapa kamus mendukung pembuatan lebih banyak penanda daripada yang lain.

 def generate_bulk_markers(aruco_dict):
   marker_size = int(input("Enter the marker size: "))
   num_markers = int(input("Enter the number of markers to generate: "))
   marker_imgs = []

   for marker_id in range(num_markers):
       marker_img = cv2.aruco.generateImageMarker(aruco_dict, marker_id,
        marker_size)

       cv2.imwrite("marker_{}.png".format(marker_id), marker_img)
       marker_imgs.append(cv2.imread("marker_{}.png".format(marker_id)))

   for marker_img in marker_imgs:
       cv2.imshow("Marker", marker_img)
       print("Dimensions:", marker_img.shape)
       cv2.waitKey(0)

Terakhir, tentukan fungsi utama yang akan mengontrol alur program dan menanyakan operasi yang diinginkan pengguna. Pastikan itu berjalan terlebih dahulu saat program dijalankan.

 def main():
   aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_50)

   user_input = input("Press '1' to generate a single marker or "
                       "'2' to generate markers in bulk: ")

   if user_input == "1":
       generate_single_marker(aruco_dict)
   elif user_input == "2":
       generate_bulk_markers(aruco_dict)
   else:
       print("Invalid input. Please try again.")

if __name__ == "__main__":
   main()

Sekarang jalankan program untuk menghasilkan penanda tunggal atau secara massal. Output dari program akan terlihat seperti ini:

Pycharm IDE menampilkan keluaran program pembuat penanda ArUco

Output menunjukkan penanda ArUco yang dihasilkan. Program menyimpan setiap penanda dengan nomor di akhir namanya, yang mewakili ID penanda.

Apa Selanjutnya Setelah Menghasilkan Penanda ArUco?

Setelah membuat penanda ArUco, Anda dapat membuat aplikasi computer vision sederhana Anda sendiri. Ini akan membantu Anda mempelajari cara menggunakan penanda untuk menghamparkan informasi digital ke visual dunia nyata. Ini juga akan membantu Anda menghargai bagaimana penanda berkontribusi pada keseluruhan pengalaman pengguna yang mulus dan imersif.

Comment
Share:

Leave a Reply

Your email address will not be published. Required fields are marked *

Ad