안녕하세요
이번에는 간단하게 이미지에 텍스트를 출력해보려 합니다.
매우 간단한 방법으로 구현 가능 합니다.
필자는 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);
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
간단합니다.
처음 접하시는 분들이라도 쉽게 하실수 있습니다.^^
Opencv 템플릿 매칭(Template Matching) (0) | 2017.04.11 |
---|---|
opencv 3.1 이미지 띄우기(visual studio 2015) (0) | 2017.04.04 |
댓글 영역