OpenCVプログラム

【OpenCV】輪郭付文字の描画

OpenCVでモノクロの画像(8bit1ch)の上に文字を書こうとすると、文字列の色にカラーを指定できない事から、文字を何色で描画しようとも、どうしても文字が見づらくなってしまいます。

 

(コード例)

char text[64] = "Imaging Solution";

CvFont font;

// 文字のフォント
cvInitFont (&font, CV_FONT_HERSHEY_DUPLEX, 0.7, 1.0, 0, 2);

// 文字の描画
cvPutText (src, text, cvPoint (15, 30), &font, CV_RGB (0, 0, 0));

 

(文字列の表示例)

【OpenCV】輪郭付文字の描画

 

文字を見えやすくするには、背景を塗りつぶすとか、文字に縁取りを付けるとか、考えられますが、割と単純な発想ですが、太めのフォント文字列を描画して、同じ場所に細めのフォントで同じ文字を描画すると、文字に輪郭が付くんじゃないか?という事でやってみた例↓

 

(コード例)

char text[64] = "Imaging Solution";

CvFont font;
CvFont outline_font;

// 輪郭用のフォント(太めのフォント)
cvInitFont (&outline_font, CV_FONT_HERSHEY_DUPLEX, 0.7, 1.0, 0, 8);
// 文字のフォント
cvInitFont (&font, CV_FONT_HERSHEY_DUPLEX, 0.7, 1.0, 0, 2);

// 輪郭の描画
cvPutText (src, text, cvPoint (15, 30), &outline_font, CV_RGB (255, 255, 255));
// 文字の描画
cvPutText (src, text, cvPoint (15, 30), &font, CV_RGB (0, 0, 0));

 

(文字列の表示例)

【OpenCV】輪郭付文字の描画

 

と、小ネタでした。

コメント

タイトルとURLをコピーしました