상세 컨텐츠

본문 제목

OpenCv 텍스트 출력 -Visual Studio 2017-

C & opencv

by 쵸벌 2017. 6. 17. 16:36

본문

안녕하세요


이번에는 간단하게 이미지에 텍스트를 출력해보려 합니다.


매우 간단한 방법으로 구현 가능 합니다.


필자는 OpenCv_3.1.0을 기준으로 설명한다.


사용 함수

void cvInitFont (CvFont * font, int font_face, double hscale, double vscale, double shear 0, int thickness 1, int line_type 8)


//출처 opencv.org

1. font Pointer to the font structure initialized by the function

함수에 의해 초기화된 폰트 구조의 포인터

2. font_face

Font name identifier. See cv::HersheyFonts and corresponding old CV_* identifiers.

글꼴 이름 식별자입니다. 자세한 내용은 FUNCtion:ARBitrary: cv::HersheyFonts 및 해당 이전의 이전 버전을 참조하십시오.

#define CV_FONT_HERSHEY_SIMPLEX    0    //일반 사이즈의 Sans-Serif 폰트

#define CV_FONT_HERSHEY_PLAIN          1        //작은 사이즈의 Sans-Serif 폰트

#define CV_FONT_HERSHEY_DUPLEX          2    //일반 사이즈의 Sans-Serif 폰트(CV_FONT_HERSHEY_SIMPLEX보다 복잡)

#define CV_FONT_HERSHEY_COMPLEX         3    //일반 사이즈의 Serif 폰트

#define CV_FONT_HERSHEY_TRIPLEX         4    //일반 사이즈의 Serif 폰트(CV_FONT_HERSHEY_COMPLEX보다 복잡)

#define CV_FONT_HERSHEY_COMPLEX_SMALL   5    //작은 사이즈의 Serif 폰트

#define CV_FONT_HERSHEY_SCRIPT_SIMPLEX  6    //손 글씨 폰트

#define CV_FONT_HERSHEY_SCRIPT_COMPLEX  7    //손 글씨의 복잡한 폰트

#define CV_FONT_ITALIC                 16    //이탤릭체 폰트

3. hscale

Horizontal scale. If equal to 1.0f , the characters have the original width depending on the font type. If equal to 0.5f , the characters are of half the original width. 

수평 스케일입니다. 1.0f와 동일한 경우 글자는 글꼴 유형에 따라 원래 너비를 가집니다. 0.5f와 동일한 경우 글자는 원래 너비의 절반으로 표현 됩니다..

4. vscale

Vertical scale. If equal to 1.0f , the characters have the original height depending on the font type. If equal to 0.5f , the characters are of half the original height.

수직 스케일 1.0f와 동일한 경우 글자는 글꼴 유형에 따라 원래 높이가 됩니다. 0.5f와 동일한 경우 글자는 원래 높이의 절반으로 표현 됩니다..

5. shear

Approximate tangent of the character slope relative to the vertical line. A zero value means a non-italic font, 1.0f means about a 45 degree slope, etc.
수직 라인에 상대적인 문자 기울기의 대략적인 접선. 값은 0°C를 의미하며, 1.0f은 약 45도 기울기를 의미합니다.

6. thickness

Thickness of the text strokes

텍스트 두께

7. line_type Type of the strokes, see line description

선의 종류


사용 예제

CvFont ft;

cvInitFont(&ft, CV_FONT_ITALIC, 1.0, 1.0, 0, 4, CV_AA);



사용 함수

void  cvPutText( CvArr* img, const char* text, CvPoint org, const CvFont* font, CvScalar color );


1. img

입력 이미지

2. text 

출력 텍스트

3. org 

첫 글자 좌측 하단 좌표

4. font 

관련 구조체

5. color  

폰트 컬러


사용 예제

CvFont ft;

cvInitFont(&ft, CV_FONT_ITALIC, 1.0, 1.0, 0, 4, CV_AA);


cvPutText(m_pnkImg, pszStr, cvPoint(500, 200), &ft, cvScalar(0, 0, 255, 0));


이와 같은 방식으로 사용 하면 된다.


언뜻 보면 파라메터(parameter)에의하여 복잡해 보이지만 간단한 표현입니다.


표현 과정(예)

1. 이미지 로드

2. 폰트 정의

3. 이미지에 출력


실제 사용 예제


void CCamCtrlDlg::OnBnClickedImgBtn()

{

// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.


m_pnkImg = cvLoadImage(IMAGE_TEST);


char pszStr[] = "Gal Gadot";

// pszStr 사용 //


cvInitFont(&ft, CV_FONT_ITALIC, 1.0, 1.0, 0, 4, CV_AA);


cvPutText(m_pnkImg, pszStr, cvPoint(500, 200), &ft, cvScalar(0, 0, 255, 0));


ShowCv("img", m_pnkImg);


cvReleaseImage(&m_pnkImg);


}


void CCamCtrlDlg::ShowCv(char* ch, IplImage* cvImg)

{

cvNamedWindow(ch);


cvShowImage(ch, cvImg);


cvWaitKey();

}


// 사용 기반 visual studio 2017 , OpenCv_3.1.0 , MFC dialog(single)mode


이미지


간단합니다.


처음 접하시는 분들이라도 쉽게 하실수 있습니다.^^

'C & opencv' 카테고리의 다른 글

Opencv 템플릿 매칭(Template Matching)  (0) 2017.04.11
opencv 3.1 이미지 띄우기(visual studio 2015)  (0) 2017.04.04

관련글 더보기

댓글 영역