1. 概要
Mac:OpenCV(+Qt5)最新版インストール方法で導入したOpenCV(highguiモジュールをQt5で拡張)の動作確認サンプル。
(GitHub)
2. 実行結果
3. ソースコード
main.cpp
/**
* OpenCV3 描画サンプル: フォントとテキスト
*/
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
int main( int argc, char** argv )
{
// 表示する文字列
cv::String text = "Hi Hello World!";
// フォントの指定
int fontFace = cv::FONT_HERSHEY_SCRIPT_COMPLEX;
// 文字の大きさ
double fontScale = 3;
// 文字の太さ
int thickness = 5;
// 画像マトリックス構造体の作成
cv::Mat img(600, 800, CV_8UC3, cv::Scalar(200, 150, 100));
// 文字列表示のベースライン(y座標)
int baseline = 0;
// 表示文字列のサイズを取得
cv::Size textSize = cv::getTextSize(text, fontFace,
fontScale, thickness, &baseline);
// 中央表示位置の計算
cv::Point textOrg((img.cols - textSize.width)/2,
(img.rows + textSize.height)/2);
// 文字列をBOXで囲む
baseline += thickness;
int margin = 10;
cv::rectangle(img, textOrg + cv::Point(-margin, margin),
textOrg + cv::Point(textSize.width + margin, -textSize.height - margin),
cv::Scalar::all(50));
// 表示ベースラインに下線を引く
cv::line(img, textOrg + cv::Point(0, thickness),
textOrg + cv::Point(textSize.width, thickness),
cv::Scalar(250, 190, 140));
// 画像マトリックスにテキストを追加
cv::putText(img, text, textOrg, fontFace, fontScale,
cv::Scalar::all(250), thickness, 8);
// ウィンドウの生成
cv::namedWindow("TestWindow", cv::WINDOW_AUTOSIZE);
// ウィンドウに画像マトリックスを表示
cv::imshow("TestWindow", img);
// ユーザが入力するまで待機
cv::waitKey(0);
// ウィンドウの破棄(関連するメモリの解放)
cv::destroyAllWindows();
// 終了
return 0;
}
4. Make設定ファイル
CMakeLists.txt
#----- cMakeのバージョン ----
cmake_minimum_required(VERSION 3.6)
#----- プロジェクト情報 ----
# プロジェクト名
set(PROJECT_NAME put_text_sample)
# ビルドターゲットのソースを指定
set(SOURCE_FILES main.cpp)
#----- ビルド設定 -----
# プロジェクトの言語を指定
project(${PROJECT_NAME} CXX)
# コンパイルオプション
set(CMAKE_CXX_FLAGS "-std=c++11 -stdlib=libc++")
#----- OpenCVの設定 ----
# OpenCVConfig.cmakeがあるディレクトリを指定(環境に合わせて変更)
SET(OpenCV_DIR "/usr/local/Cellar/opencv3/HEAD-6c12533_4/share/OpenCV")
# OpenCvのincludeディレクトリを指定(環境に合わせて変更)
INCLUDE_DIRECTORIES("/usr/local/Cellar/opencv3/HEAD-6c12533_4/include")
# [Package]_DIRに指定されたディレクトリを使い検索
FIND_PACKAGE( OpenCV REQUIRED )
#----- ビルド ----
# 対象のソースファイルを設定
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
# OpenCVの動的ライブラリをビルドターゲットにリンク
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
5.ビルド
cmake .
make
6.実行
./put_text_sample
上の画像のウィンドウが表示されます。