Computer >> Máy Tính >  >> Lập trình >> Python

Vẽ các hình dạng hình học trên hình ảnh bằng mô-đun Python OpenCv

Các hoạt động cơ bản của OpenCV là vẽ lên các hình ảnh. Khả năng thêm các hình dạng hình học khác nhau như đường thẳng, hình tròn và hình chữ nhật, v.v.

Thường làm việc với phân tích hình ảnh, chúng tôi muốn làm nổi bật một phần của hình ảnh, chẳng hạn bằng cách thêm một hình chữ nhật xác định phần đó. Cũng như ví dụ một mũi tên để chỉ điều gì đó.

cv2.line () - Hàm này được sử dụng để vẽ đường thẳng trên hình ảnh.

cv2.rectangle () - Hàm này được sử dụng để vẽ hình chữ nhật trên hình ảnh.

cv2.circle () - Hàm này được sử dụng để vẽ hình tròn trên hình ảnh.

cv2.putText () - Hàm này được sử dụng để viết văn bản trên hình ảnh.

cv2.ellipse () - Hàm này được sử dụng để vẽ hình elip trên hình ảnh.

Mã mẫu

 import numpy as npimport cv2my_img =np.zeros ((350, 350, 3), dtype ="uint8") cv2.imshow ('Window', my_img) cv2.waitKey (0) cv2.destroyAllWindows ()  

Đầu ra

Vẽ các hình dạng hình học trên hình ảnh bằng mô-đun Python OpenCv

Để vẽ một đường

Để vẽ một đường thẳng, hàm cv2.line () được sử dụng. Hàm này có năm đối số

  • Đối tượng hình ảnh để vẽ
  • Tọa độ điểm bắt đầu (x, y)
  • Tọa độ điểm cuối (x, y)
  • Màu nét trong BGR (không phải RGB, cần lưu ý)
  • Độ dày nét vẽ (tính bằng pixel)

Mã mẫu

 import numpy as npimport cv2my_img =np.zeros ((350, 350, 3), dtype ="uint8") # create for linecv2.line (my_img, (202, 220), (100, 160), (0 , 20, 200), 10) cv2.imshow ('Window', my_img) cv2.waitKey (0) cv2.destroyAllWindows () 

Đầu ra

Vẽ các hình dạng hình học trên hình ảnh bằng mô-đun Python OpenCv

Để vẽ Hình chữ nhật

Để vẽ một hình chữ nhật, hàm cv2.rectangle () được sử dụng. Hàm này chấp nhận năm tham số đầu vào.

  • Đối tượng hình ảnh để vẽ
  • Tọa độ của đỉnh ở trên cùng bên trái (x, y)
  • Tọa độ của đỉnh dưới bên phải (x, y)
  • Màu nét trong BGR (không phải RGB, cần lưu ý)
  • Độ dày nét vẽ (tính bằng pixel)

Mã mẫu

 nhập numpy dưới dạng npimport cv2my_img =np.zeros ((400, 400, 3), dtype ="uint8") # tạo hình chữ nhậtcv2.rectangle (my_img, (30, 30), (300, 200), (0 , 20, 200), 10) cv2.imshow ('Window', my_img) # cho phép chúng tôi xem hình ảnh # cho đến khi đóng lại một cách mạnh mẽcv2.waitKey (0) cv2.destroyAllWindows () 

Đầu ra

Vẽ các hình dạng hình học trên hình ảnh bằng mô-đun Python OpenCv

Để vẽ một vòng tròn

Để vẽ một đường tròn, hàm cv2.circle () được sử dụng. Hàm này chấp nhận năm tham số đầu vào.

  • Đối tượng hình ảnh để vẽ
  • Tọa độ trung tâm (x, y)
  • Bán kính của hình tròn
  • Màu nét trong BGR (không phải RGB, cần lưu ý)
  • Độ dày nét vẽ (tính bằng pixel)

Mã mẫu

 nhập numpy dưới dạng npimport cv2my_img =np.zeros ((400, 400, 3), dtype ="uint8") # tạo vòng tròncv2.circle (my_img, (200, 200), 80, (0, 20, 200) , 10) cv2.imshow ('Window', my_img) cv2.waitKey (0) cv2.destroyAllWindows () 

Đầu ra

Vẽ các hình dạng hình học trên hình ảnh bằng mô-đun Python OpenCv

Để vẽ hình elip

Để vẽ một hình elip, hàm cv2.ellipse () được sử dụng. Hàm này chấp nhận tám tham số đầu vào.

  • Đối tượng hình ảnh mà hình ảnh sẽ được vẽ
  • Tọa độ trung tâm (x, y)
  • Chiều dài của trục chính và trục chính (h, w)
  • Góc quay của hình elip (được tính theo chiều ngược chiều kim đồng hồ)
  • Góc bắt đầu (tính theo chiều kim đồng hồ)
  • Góc cuối cùng (tính theo chiều kim đồng hồ)
  • Màu nét trong BGR (không phải RGB cần được lưu ý)
  • Độ dày nét vẽ

Mã mẫu

 nhập numpy dưới dạng npimport cv2my_img =np.zeros ((400, 400, 3), dtype ="uint8") # tạo cho hình chữ nhậtcv2.ellipse (my_img, (256,256), (100,50), 0,0,180,255, -1) cv2.imshow ('Window', my_img) # cho phép chúng tôi xem hình ảnh # cho đến khi đóng một cách cưỡng bứccv2.waitKey (0) cv2.destroyAllWindows () 

Đầu ra

Vẽ các hình dạng hình học trên hình ảnh bằng mô-đun Python OpenCv

Để vẽ một đa giác

Để vẽ một đa giác, hàm cv2.polylines () được sử dụng. Hàm này cần năm số đối số.

  • Đối tượng hình ảnh để vẽ
  • Mảng tọa độ
  • Đúng, nếu nó là một dòng kín
  • Màu nét
  • Độ dày nét vẽ

Mã mẫu

 import numpy dưới dạng npimport cv2my_img =np.zeros ((400, 400, 3), dtype ="uint8") pts =np.array ([[10,5], [20,30], [70,20 " ], [50,10]], np.int32) pts =pts.reshape ((- 1,1,2)) cv2.polylines (my_img, [pts], True, (0,255,255)) cv2.imshow ('Cửa sổ ', my_img) cv2.waitKey (0) cv2.destroyAllWindows () 

Đầu ra

Vẽ các hình dạng hình học trên hình ảnh bằng mô-đun Python OpenCv

Để vẽ văn bản

Để viết văn bản bằng OpenCV, có hàm cv2.putText () chấp nhận một số đối số.

  • Hình ảnh để vẽ
  • Văn bản được viết
  • Tọa độ của điểm bắt đầu văn bản
  • Phông chữ được sử dụng
  • Kích thước phông chữ
  • Màu văn bản
  • Độ dày của văn bản
  • Loại đường được sử dụng

Mã mẫu

 import numpy dưới dạng npimport cv2my_img =np.zeros ((400, 400, 3), dtype ="uint8") # Viết textfont =cv2.FONT_HERSHEY_SIMPLEXcv2.putText (my_img, 'Tutorials Point', (50, 50), font, 0.8, (255, 0, 0), 2, cv2.LINE_AA) cv2.imshow ('Window', my_img) cv2.waitKey (0) cv2.destroyAllWindows () 

Đầu ra

Vẽ các hình dạng hình học trên hình ảnh bằng mô-đun Python OpenCv