Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++와 OpenCV로 타원 그리기 완벽 가이드

OpenCV에서 타원(ellipse)을 그리려면 중심 좌표, 장축(major axis), 단축(minor axis)이라는 세 가지 핵심 매개변수가 필요합니다. 또한 타원을 그릴 행렬(matrix)을 준비하고, 선 두께와 선 색상도 함께 지정해야 합니다.

OpenCV로 타원을 그릴 때는 회전 각도를 지정해야 하며, 여기에 더해 시작점과 끝점이라는 두 개의 추가 매개변수도 필요합니다. ellipse() 함수를 호출하려면 <imgproc.hpp> 헤더 파일을 포함시켜야 한다는 점을 잊지 마세요.

기본 문법

ellipse(whiteMatrix, center, xy, angle, starting_point, ending_point, line_Color, thickness);

매개변수 설명

  • whiteMatrix – 타원이 그려질 대상 이미지(행렬)
  • center – 타원의 중심 좌표 (Point 타입)
  • xy – 장축과 단축의 크기 (Size 타입)
  • angle – 타원의 회전 각도
  • starting_point / ending_point – 타원을 그리기 시작하는 각도와 끝나는 각도
  • line_Color – 타원 선의 색상 (Scalar 타입)
  • thickness – 선의 두께

아래 예제 프로그램은 OpenCV에서 타원을 그리는 방법을 보여줍니다.

예제 코드

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main() {
    Mat whiteMatrix(200, 200, CV_8UC3, Scalar(255, 255, 255)); // 흰색 배경의 행렬 선언
    Point center(100, 100); // 타원의 중심 좌표 선언
    Size xy(100, 50); // 타원의 장축과 단축 크기 선언
    int angle = 50; // 회전 각도
    int starting_point = 0; // 타원의 시작점
    int ending_point = 360; // 타원의 끝점
    Scalar line_Color(0, 0, 0); // 타원의 색상 (검정)
    int thickness = 2; // 선 두께
    namedWindow("whiteMatrix"); // 타원을 표시할 윈도우 선언
    ellipse(whiteMatrix, center, xy, angle, starting_point, ending_point, line_Color, thickness); // 타원 그리기
    imshow("WhiteMatrix", whiteMatrix); // 타원 화면에 출력
    waitKey(0); // 키 입력 대기
    return 0;
}

실행 결과

위 코드를 컴파일하고 실행하면 흰색 배경 위에 검은색으로 회전된 타원이 그려진 창이 나타납니다. 프로그램은 사용자가 아무 키나 누를 때까지 결과 화면을 유지합니다.

시작점을 0으로, 끝점을 360으로 설정하면 완전한 타원이 그려집니다. 만약 부분적인 호(arc) 형태의 타원을 원한다면 시작점과 끝점 값을 조절하여 다양한 모양을 만들어 볼 수 있습니다.