선을 그리려면 두 개의 점, 즉 시작점과 끝점이 필요합니다. 또한 선을 그릴 캔버스 역할을 하는 공간도 마련해야 합니다.
OpenCV에서는 행렬(Matrix)이 캔버스 역할을 합니다. 따라서 선의 시작점과 끝점을 정의하고, 선에 적용할 색상과 두께까지 함께 지정해야 합니다. 정리하면, OpenCV로 선을 그리기 위해서는 다음 네 가지 요소가 필요합니다.
- 캔버스 역할을 할 행렬(Mat)
- 선의 시작점(Point)
- 선의 끝점(Point)
- 선의 색상(Scalar)과 두께(int)
필수 헤더 파일
OpenCV에서 선을 그리려면 반드시 <imgproc.hpp> 헤더를 포함해야 합니다. line() 함수가 바로 이 헤더에 정의되어 있기 때문입니다.
기본 문법
line(whiteMatrix, starting, ending, line_Color, thickness);
각 매개변수의 의미는 다음과 같습니다.
- whiteMatrix: 선을 그릴 대상 행렬(캔버스)
- starting: 선의 시작 좌표
- ending: 선의 끝 좌표
- line_Color: 선의 색상(BGR 값)
- 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 starting(50, 50);//선의 시작점
Point ending(150, 150);//선의 끝점
Scalar line_Color(0, 0, 0);//선의 색상(검은색)
int thickness = 2;//선의 두께
namedWindow("GrayImage");//선을 표시할 창 선언
line(whiteMatrix, starting, ending, line_Color, thickness);//line() 함수로 선 그리기//
imshow("GrayImage", whiteMatrix);//결과 화면에 출력//
waitKey(0);//키 입력 대기
return 0;
}실행 결과
위 코드를 실행하면 200×200 크기의 흰색 캔버스 위에 좌표 (50, 50)에서 (150, 150)까지 두께 2의 검은색 대각선이 그려진 이미지가 출력됩니다.
