앞에서 설명한 line(), arrowedLine(), drawMarker() 함수를 사용하여 직선을 그리는 예제 코드를 코드 4-6에 나타냈습니다. 코드 4-6의 drawLines() 함수는 흰색으로 초기화된 400×400 크기 영상에 다양한 직선과 화살표 등을 그리고 화면에 나타냅니다. drawLines() 함수가 정의된 소스 파일은 내려받은 예제 파일 중 ch04/drawing 프로젝트에서 확인할 수 있습니다.
코드 4-6 직선 그리기 예제 [ch04/drawing]
01 void drawLines() 02 { 03 Mat img(400, 400, CV_8UC3, Scalar(255, 255, 255)); 04 05 line(img, Point(50, 50), Point(200, 50), Scalar(0, 0, 255)); 06 line(img, Point(50, 100), Point(200, 100), Scalar(255, 0, 255), 3); 07 line(img, Point(50, 150), Point(200, 150), Scalar(255, 0, 0), 10); 08 09 line(img, Point(250, 50), Point(350, 100), Scalar(0, 0, 255), 1, LINE_4); 10 line(img, Point(250, 70), Point(350, 120), Scalar(255, 0, 255), 1, LINE_8); 11 line(img, Point(250, 90), Point(350, 140), Scalar(255, 0, 0), 1, LINE_AA); 12 13 arrowedLine(img, Point(50, 200), Point(150, 200), Scalar(0, 0, 255), 1); 14 arrowedLine(img, Point(50, 250), Point(350, 250), Scalar(255, 0, 255), 1); 15 arrowedLine(img, Point(50, 300), Point(350, 300), Scalar(255, 0, 0), 1, LINE_8, 0, 0.05); 16 17 drawMarker(img, Point(50, 350), Scalar(0, 0, 255), MARKER_CROSS); 18 drawMarker(img, Point(100, 350), Scalar(0, 0, 255), MARKER_TILTED_CROSS); 19 drawMarker(img, Point(150, 350), Scalar(0, 0, 255), MARKER_STAR); 20 drawMarker(img, Point(200, 350), Scalar(0, 0, 255), MARKER_DIAMOND); 21 drawMarker(img, Point(250, 350), Scalar(0, 0, 255), MARKER_SQUARE); 22 drawMarker(img, Point(300, 350), Scalar(0, 0, 255), MARKER_TRIANGLE_UP); 23 drawMarker(img, Point(350, 350), Scalar(0, 0, 255), MARKER_TRIANGLE_DOWN); 24 25 imshow("img", img); 26 waitKey(0); 27 28 destroyAllWindows(); 29 }