Rate this post

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.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now