Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Vẽ hình học trên hình ảnh với Python OpenCV

Các thao tác cơ bản của OpenCV bao gồm vẽ các hình học như đường thẳng, hình tròn, hình chữ nhật, elip, đa giác và văn bản lên hình ảnh. Điều này hữu ích khi cần làm nổi bật vùng quan tâm hoặc thêm chú thích.

Các hàm vẽ chính

  • cv2.line() – Vẽ đường thẳng.
  • cv2.rectangle() – Vẽ hình chữ nhật.
  • cv2.circle() – Vẽ hình tròn.
  • cv2.ellipse() – Vẽ elip.
  • cv2.polylines() – Vẽ đa giác.
  • cv2.putText() – Viết văn bản.

Lưu ý: Màu sắc trong OpenCV sử dụng thứ tự BGR (Blue-Green-Red), không phải RGB.

Tạo ảnh nền đen

import numpy as np
import cv2

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

Vẽ hình học trên hình ảnh với Python OpenCV

Vẽ đường thẳng – cv2.line()

Tham số: ảnh, điểm đầu (x,y), điểm cuối (x,y), màu BGR, độ dày.

import numpy as np
import cv2

my_img = np.zeros((350, 350, 3), dtype="uint8")
cv2.line(my_img, (202, 220), (100, 160), (0, 20, 200), 10)
cv2.imshow('Window', my_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Vẽ hình học trên hình ảnh với Python OpenCV

Vẽ hình chữ nhật – cv2.rectangle()

Tham số: ảnh, đỉnh trên-trái (x,y), đỉnh dưới-phải (x,y), màu BGR, độ dày.

import numpy as np
import cv2

my_img = np.zeros((400, 400, 3), dtype="uint8")
cv2.rectangle(my_img, (30, 30), (300, 200), (0, 20, 200), 10)
cv2.imshow('Window', my_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Vẽ hình học trên hình ảnh với Python OpenCV

Vẽ hình tròn – cv2.circle()

Tham số: ảnh, tâm (x,y), bán kính, màu BGR, độ dày.

import numpy as np
import cv2

my_img = np.zeros((400, 400, 3), dtype="uint8")
cv2.circle(my_img, (200, 200), 80, (0, 20, 200), 10)
cv2.imshow('Window', my_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Vẽ hình học trên hình ảnh với Python OpenCV

Vẽ elip – cv2.ellipse()

Tham số: ảnh, tâm (x,y), trục (minor, major), góc xoay, góc bắt đầu, góc kết thúc, màu BGR, độ dày.

import numpy as np
import cv2

my_img = np.zeros((400, 400, 3), dtype="uint8")
cv2.ellipse(my_img, (256, 256), (100, 50), 0, 0, 180, 255, -1)
cv2.imshow('Window', my_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Vẽ hình học trên hình ảnh với Python OpenCV

Vẽ đa giác – cv2.polylines()

Tham số: ảnh, mảng tọ độ, đóng đường (True/False), màu, độ dày.

import numpy as np
import cv2

my_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('Window', my_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Vẽ hình học trên hình ảnh với Python OpenCV

Viết văn bản – cv2.putText()

Tham số: ảnh, nội dung, vị trí bắt đầu, font, cỡ chữ, màu, độ dày, kiểu đường nét.

import numpy as np
import cv2

my_img = np.zeros((400, 400, 3), dtype="uint8")
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.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()

Vẽ hình học trên hình ảnh với Python OpenCV