Các bài viết liên quan:
Công cụ vẽ
OpenCV cung cấp một cơ sở để sử dụng chuột như một công cụ vẽ. Bất cứ khi nào xảy ra bất kỳ sự kiện chuột nào trên màn hình cửa sổ, nó có thể vẽ bất cứ thứ gì. Sự kiện chuột có thể là nút trái xuống, nút lên trái, nhấp đúp, v.v. Nó cung cấp cho chúng ta tọa độ (x, y) cho mọi sự kiện chuột. Bằng cách sử dụng các tọa độ này, chúng ta có thể vẽ bất cứ thứ gì chúng ta muốn. Để nhận danh sách tất cả các sự kiện có sẵn, hãy chạy mã sau trong thiết bị đầu cuối:
Đoạn mã trên sẽ trả về danh sách tất cả các sự kiện chuột được OpenCV hỗ trợ.
Đầu ra:
Vẽ hình tròn
Để vẽ một hình tròn trên màn hình window, trước tiên chúng ta cần tạo một hàm gọi lại chuột bằng cách sử dụng hàm cv2.setMouseCallback (). Nó có một định dạng cụ thể mà vẫn giống nhau ở mọi nơi. Chức năng gọi lại chuột của chúng tôi được hỗ trợ bằng cách vẽ một vòng tròn bằng cách nhấp đúp. Hãy xem xét chương trình sau:
Trong đoạn mã trên, đầu tiên chúng ta tạo một màn hình cửa sổ màu đen nơi xảy ra sự kiện chuột. Khi chúng ta nhấp đúp vào cửa sổ màu đen, nó sẽ vẽ một vòng tròn như chúng ta đã xác định trong hàm callback draw_circle ().
Vẽ hình chữ nhật và hình cong
Chúng ta có thể vẽ bất kỳ hình dạng nào trên màn hình cửa sổ. Chúng tôi vẽ hình chữ nhật hoặc hình tròn (tùy thuộc vào mô hình chúng tôi chọn) bằng cách kéo chuột như chúng tôi làm trong ứng dụng Paint. Chúng tôi xem xét ví dụ mà chúng tôi đã tạo một hàm gọi lại có hai phần. Phần đầu tiên là vẽ hình chữ nhật và phần khác để vẽ các hình tròn. Hãy xem ví dụ đã cho để hiểu nó theo cách cụ thể hơn:
import cv2 import numpy as np # Creating mouse callback function def draw_circle(event,x,y,flags,param): if(event == cv2.EVENT_LBUTTONDBLCLK): cv2.circle(img,(x,y),100,(255,255, 0),-1) # Creating a black image, a window and bind the function to window img = np.zeros((512,512,3), np.uint8) cv2.namedWindow('image') cv2.setMouseCallback('image',draw_circle) while(1): cv2.imshow('image',img) if cv2.waitKey(20) & 0xFF == 27: break cv2.destroyAllWindows()
Đầu ra:
Trong chương trình trên, chúng ta đã tạo hai hàm gọi lại chuột. Nó được liên kết với cửa sổ OpenCV. Trong vòng lặp while, chúng tôi đặt ràng buộc bàn phím cho phím ‘m’ để chuyển giữa hình chữ nhật và đường cong.