บทนำ
การวาดสี่เหลี่ยมผืนผ้าต้องการ 4 จุด (มุมซ้ายบน และ มุมขวาล่าง) หรือจุดเริ่มต้น + ความกว้าง/สูง OpenCV มีฟังก์ชัน rectangle() ในโมดูล imgproc
Syntax
rectangle(img, pt1, pt2, color, thickness);
ตัวอย่างโค้ด
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main() {
// สร้างพื้นหลังสีขาว 200x200
Mat whiteMatrix(200, 200, CV_8UC3, Scalar(255, 255, 255));
Point starting(40, 40); // มุมซ้ายบน
Point ending(160, 100); // มุมขวาล่าง
Scalar line_Color(0, 0, 0); // สีดำ
int thickness = 2; // ความหนา 2 พิกเซล
namedWindow("whiteMatrix");
rectangle(whiteMatrix, starting, ending, line_Color, thickness);
imshow("WhiteMatrix", whiteMatrix);
waitKey(0);
return 0;
}
พารามิเตอร์ของ rectangle()
- img: เมทริกซ์ปลายทาง
- pt1: จุดมุมซ้ายบน (Point)
- pt2: จุดมุมขวาล่าง (Point)
- color: สีเส้น (Scalar B,G,R)
- thickness: ความหนาเส้น (พิกเซล) ใช้ -1 หรือ FILLED เพื่อเติมสี
- lineType (optional): ประเภทเส้น (LINE_8, LINE_4, LINE_AA)
- shift (optional): จำนวนบิตเลขทศนิยมในพิกัด
การเติมสี (Filled Rectangle)
// วาดสี่เหลี่ยมเติมสีแดง
rectangle(img, Point(50,50), Point(150,150), Scalar(0,0,255), FILLED);
ผลลัพธ์


การประยุกต์ใช้
- วาด Bounding Box สำหรับ Object Detection
- สร้าง UI elements (ปุ่ม, กล่องข้อความ)
- Mark พื้นที่สนใจ (ROI)
- วาด Grid หรือตาราง