원은 중심점(center)과 반지름(radius)으로 정의됩니다. OpenCV에서 원을 그리려면 먼저 중심 좌표와 반지름 값을 지정해야 하며, circle() 함수가 <imgproc.hpp> 헤더 파일에 정의되어 있으므로 이 헤더를 반드시 포함해야 합니다.
기본 문법
circle(whiteMatrix, center, radius, line_Color, thickness);
매개변수 설명
- whiteMatrix : 원이 그려질 대상 이미지(Mat 행렬)
- center : 원의 중심 좌표(Point 타입)
- radius : 원의 반지름(픽셀 단위)
- line_Color : 원의 색상(Scalar 타입, BGR 순서)
- thickness : 선의 두께. 음수(예: -1)를 지정하면 원 내부가 채워집니다.
다음 예제 프로그램은 흰색 배경 위에 검은색 원을 그려 화면에 출력하는 과정을 보여줍니다.
예제 코드
#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); // 원의 중심점 좌표 선언
int radius = 50; // 반지름 값 설정
Scalar line_Color(0, 0, 0); // 원의 색상 지정 (검은색)
int thickness = 2; // 선 두께 지정
namedWindow("whiteMatrix"); // 원을 표시할 창 생성
circle(whiteMatrix, center, radius, line_Color, thickness); // circle() 함수를 사용해 원 그리기
imshow("WhiteMatrix", whiteMatrix); // 화면에 결과 출력
waitKey(0); // 키 입력 대기
return 0;
}출력 결과

코드를 실행하면 200×200 크기의 흰색 배경 중앙에 반지름 50픽셀, 두께 2픽셀의 검은색 원이 그려진 것을 확인할 수 있습니다. waitKey(0)는 사용자가 아무 키나 누를 때까지 창을 유지하는 역할을 합니다.