영상처리 오픈 라이브러리인 OpenCV를 사용하려면 기본적인 구조와 이용 방법을 알아야 합니다. 이번 이야기에서는 OpenCV 활용을 위해 가장 기본 함수 중 하나인 ‘Line’에 대해 알아 보겠습니다. 단어에서처럼 한 점에서 다른 한 점까지 선을 긋는 함수이고 OpenCV 홈페이지에도 설명이 잘 되어 있습니다. 초기에는 C/C++ 언어만 제공되었는데 현재에는 Python에서도 활용될 수 있게 기능을 제공하고 있네요.
함수에 첫 번째 “img”는 선을 그릴 영상, “pt1 / pt2”는 선에 시작 점과 끝나는 점을, “color”는 선에 색깔을 나타냅니다. “thickness”는 선의 두께, “line type”은 4, 8, CV_AA 중 하나를 선택할 수 있는데 선을 표현하는 거칠기 정도로 이해하면 됩니다. C 또는 C++ 함수를 사용 시 “img” 앞에 구조체 형이 다르기 때문에 주의해서 사용해야 되고 C 함수에서는 보통 “IplImage” 구조체를 사용합니다.
사용 예)
cvLine( Input_Image, cvPoint(10,10), cvPoint(100,100), CV_RGB(255, 255, 255), 1, CV_AA, 0);
C 함수 이용 시 위 예에서 처럼 활용할 수 있습니다. 설명했듯이 “Input_Image”는 IplImage 구조체이며 “pt1 / pt2”는 cvPoint(x, y)와 “color”는 CV_RGB(red, green, blue)로 대입 할 수 있습니다. CvPoint는 OpenCV 사용에 맞게 정의된 구조체로 볼 수 있습니다. 몇 번 실습을 해보면 쉽게 익힐 수 있고, Line 함수를 활용할 수 있으면 Circle, Rectangle, Ellipse 등 OpenCV에서 제공되는 기본 함수들을 쉽게 이용할 수 있게 됩니다.
경험 상 함수에 사용법은 개인 블로그 등을 참조하는 것보다 그 라이브러리 설명서를 이용하여 익히는 것이 가장 정확한 방법인 듯 합니다. 기본 함수를 잘 익히면 유사한 함수들은 쉽게 익힐 수 있고 응용이 가능해 질 수 있습니다.
'영상처리 도구' 카테고리의 다른 글
OpenCV 블러링 Blurring, 스무딩 Smoothing (0) | 2018.06.14 |
---|---|
OpenCV 윤곽선 검출 Edge Detection (0) | 2018.01.15 |
OpenCV 패턴 정합 Pattern Matching ( Template Matching ) (0) | 2017.10.28 |
OpenCV 타원 추정 Ellipse Fitting (0) | 2017.09.12 |
영상처리 라이브러리 Image Processing Library (0) | 2017.05.28 |