/ / Cách tạo Trình tạo điểm đánh dấu ArUco bằng Python

Cách tạo Trình tạo điểm đánh dấu ArUco bằng Python

Khi nói đến thực tế tăng cường, việc định vị các đối tượng ảo và lớp phủ là rất quan trọng. Đó là lúc các điểm đánh dấu ArUco xuất hiện. Điểm đánh dấu ArUco là các mẫu nhị phân đơn giản mà bạn có thể định vị trong các cảnh từ thực để phủ lên nội dung kỹ thuật số.


Bạn có thể in chúng ra giấy, hiển thị chúng trên màn hình hoặc chiếu chúng lên các đối tượng trong thế giới thực. Tính linh hoạt này khiến chúng trở thành lựa chọn phổ biến trong các ứng dụng thị giác máy tính.


Mô-đun ArUco và Thư viện OpenCV

Để tạo các điểm đánh dấu ArUco, bạn cần mô-đun ArUco là một phần của thư viện OpenCV. OpenCV là một thư viện chứa rất nhiều công cụ và chức năng để phát triển các ứng dụng thị giác máy tính.

Mô-đun này cho phép bạn tạo, phát hiện và nhận dạng các điểm đánh dấu ArUco. Nó cũng cho phép bạn thực hiện ước lượng tư thế. Đổi lại, điều này cho phép căn chỉnh các đối tượng ảo với thế giới thực để tạo ra trải nghiệm người dùng đắm chìm và liền mạch.

Thiết lập môi trường của bạn

Tạo một môi trường ảo Python mới. Điều này sẽ đảm bảo rằng không có xung đột phiên bản gói khi bạn cài đặt các thư viện cần thiết cho dự án của mình. Sau đó tiến tới terminal và chạy lệnh sau để cài đặt OpenCV.

 pip install opencv-contrib-python

Lệnh trên cài đặt thư viện đóng góp OpenCV. Phần này chứa mô-đun ArUco mà bạn sẽ sử dụng để tạo trình tạo điểm đánh dấu. Đảm bảo rằng bạn cài đặt phiên bản này, không phải OpenCV-python, vì phiên bản sau không bao gồm chức năng bạn cần.

Tạo chương trình tạo ArUco Maker

Việc tạo chương trình đánh dấu ArUco khá đơn giản. Điều này là do mô-đun AruCo thực hiện hầu hết các công việc nặng nhọc cho bạn. Bắt đầu bằng cách nhập OpenCV để cho phép bạn sử dụng các chức năng và công cụ của nó trong mã của bạn.

 import cv2

Xác định một hàm sẽ tạo một điểm đánh dấu với một ID cụ thể. Điều này sẽ phục vụ khi các điểm đánh dấu không cần thiết với số lượng lớn.

 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)

Sau đó, xác định một chức năng sẽ tạo ra một số điểm đánh dấu nhất định với số lượng lớn. Số điểm đánh dấu bạn có thể tạo sẽ khác nhau tùy theo từ điển OpenCV mà bạn sử dụng. Điều này là do một số từ điển hỗ trợ tạo nhiều điểm đánh dấu hơn những từ điển khác.

 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)

Cuối cùng, xác định chức năng chính sẽ điều khiển luồng của chương trình và yêu cầu người dùng thực hiện thao tác mong muốn. Hãy chắc chắn rằng nó chạy đầu tiên khi chương trình thực thi.

 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()

Bây giờ hãy chạy chương trình để tạo một điểm đánh dấu hoặc hàng loạt. Đầu ra của chương trình sẽ giống như thế này:

Pycharm IDE hiển thị đầu ra của chương trình tạo mã đánh dấu ArUco

Đầu ra hiển thị điểm đánh dấu ArUco được tạo. Chương trình lưu mỗi điểm đánh dấu bằng một số ở cuối tên của nó, đại diện cho ID điểm đánh dấu.

Điều gì tiếp theo sau khi tạo điểm đánh dấu ArUco?

Sau khi tạo các điểm đánh dấu ArUco, bạn có thể tạo ứng dụng thị giác máy tính đơn giản của riêng mình. Điều này sẽ giúp bạn tìm hiểu cách sử dụng các điểm đánh dấu để phủ thông tin kỹ thuật số lên hình ảnh trong thế giới thực. Nó cũng sẽ giúp bạn đánh giá cao cách các điểm đánh dấu đóng góp vào toàn bộ trải nghiệm người dùng liền mạch và đắm chìm.

Similar Posts

Leave a Reply

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