Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

วิธีวาดสี่เหลี่ยมผืนผ้าใน OpenCV C++

บทนำ

การวาดสี่เหลี่ยมผืนผ้าต้องการ 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);

ผลลัพธ์

วิธีวาดสี่เหลี่ยมผืนผ้าใน OpenCV C++

วิธีวาดสี่เหลี่ยมผืนผ้าใน OpenCV C++

การประยุกต์ใช้

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