[C++] Các hàm vẽ cơ bản trong OpenCV

OpenCV cung cấp các hàm vẽ cơ bản như vẽ điểm, vẽ đường thẳng, đường tròn, elip, hình chữ nhật, text,… Mục đích là khi nhận dạng hoặc phát hiện được đối tượng thì vẽ lên ảnh output cho dễ nhìn


Đường tròn khác với hình tròn, đường chữ nhật khác với hình chữ nhật,… Thí dụ:
– Đường tròn chỉ là tập hợp các điểm cách tâm một khoảng bằng bán kính r
– Hình tròn là tập hợp tất cả các điểm có khoảng cách bằng hoặc nhỏ hơn bán kính r

Vẽ điểm

Vẽ điểm hay là set giá trị màu cho 1 điểm nào đó. (Hơi khó nhìn 1 tí)

Vẽ đường thẳng

Đường thẳng được xác định bởi 2 điểm. Ngoài ra được xác định thêm bởi các thông số như màu, nét đậm/nhạt, kiểu đường thẳng.

Vẽ đường tròn

Đường tròn được xác định bởi tâm đường tròn và bán kính.

Vẽ hìnhtròn

Tương tự như vẽ đường tròn nhưng có fill màu bên trong, chỉ khác tham số là nét đậm nhạt bằng -1

Vẽ đường elip

Đường elip được xác định bởi tâm elip và 2 trục. Có 2 cách vẽ:
– Truyền tham số bao gồm: kích cỡ, góc xoay của elip, điểm bắt đầu và điểm kết thúc
– Truyền tham số là hình chữ nhật bao lấy đường elip, có nghĩa là đường elip ngoại tiếp hình chữ nhật

Vẽ hình elip

Tương tự như vẽ đường elip nhưng có fill màu bên trong, chỉ khác tham số là nét đậm nhạt bằng -1

Vẽ đường chữ nhật

Vẽ đường chữ nhật cũng có 2 cách vẽ:
– Truyền tham số là hình chữ nhật cần vẽ (cv::Rect)
– Truyền điểm góc trên-trái và góc dưới-phải

Vẽ hình chữ nhật

Tương tự như vẽ đường chữ nhật nhưng có fill màu bên trong, chỉ khác tham số là nét đậm nhạt bằng -1

Vẽ text

OpenCV cung cấp nhiều loại font để vẽ, code bên dưới vẽ ra tất cả font

Vẽ đường gấp khúc

Để vẽ đường gấp khúc các bạn truyền vào danh sách các điểm cần vẽ

Ví dụ: vẽ lồng đèn ngôi sao

opencv draw simple polygon

Khử răng cưa

Ở ví dụ trên có tham số CV_AA, nghĩa là Anti Alias, có thể thấy kết quả khác nhau rõ rệt của 2 hình. Bên dưới là text khác nhau về không khử và khử răng cưa:
opencv draw text

Tham khảo thêm

Leave a Reply