joppot

コピペで絶対動く。説明を妥協しない

プログラミング

C++のopencvでhelloworld

投稿日:2014年3月7日 更新日:


file8001243264561

概要

(追記、2018年11月に書き直しました)

みなさんこんにちはcandleです。インストールできたopencvを使ってhelloworldを行いましょう。

opencvでhelloworldとはなんぞや、と感じるかもしれませんが、opencvライブラリを使って、画像を表示させようというのが目的です。

前提

  1. opencvがインストールされている

ソースを用意する

まずはデスクトップにhelloworld.cppファイルを作りましょう。

ターミナルでデスクトップに移動して

touch helloworld.cpp

で作成できます。

エディタでhelloworld.cppファイルを開きます。エディタはなんでもかまいません。
私はemacsを使用します。

emacs helloworld.cpp

次のソースをコピペします。

#include <opencv2/opencv.hpp>

int main(void){
  cv::Mat img;
  img = cv::imread("./gear.jpg", 1);
  cv::namedWindow("Image");
  cv::imshow("Image", img);
  cv::waitKey(0);
  return 0;
}

ちなみに、gear.jpgファイルを読み込むのですがその画像は下の画像を使用します。

gear

デスクトップに置いてください。

コンパイルする

helloworld.cppをコンパイルします。g++のコンパイルを使います。

g++ -o helloworld helloworld.cpp `pkg-config --cflags opencv` `pkg-config --libs opencv`

helloworldを実行する

完成したC++の実行ファイルはいくつか実行方法があります。
一番簡単なのはFinderを開き、実行ファイルをダブルクリックで実行することです。
しかし、私の場合実行ファイルをクリックするとエラーで消えてしまいました。

一方で、右クリックして、iTerm2で開くと、うまく実行することができました。

もちろん、ターミナルからコマンドで直接実行できます。
ターミナルでhelloworldがあるフォルダに移動して

./helloworld

で実行できます。

Imageというタイトルがついたウィンドが開きました。
helloworld成功です。

まとめ

opencvで画像を読み込むこれがopencvのhelloworldと言ってもよいのではないでしょうか。
実行ファイルが直接実行できないのは気がかりでしたが、まあいまのところは別に良いや。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-プログラミング
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

railsのfluent-logger gemを使ってユーザーのアクセスをfluentdサーバに収集する

概要 みなさんこんにちはcandleです。前回からfluentd関連の記事を続けていますが、今回辺りから実用的な使い方を書いていきたいと思います。 fluentdと言えば、ビックデータで扱うようなデー …

ruby on rails のckeditor gemの機能ボタンをカスタマイズする

概要 みなさんこんにちはcandleです。今回はruby on rails のckeditor gemのショートカットボタンをカスタマイズして自分が必要な機能のみを表示してみましょう。 前提 cked …

railsのsimple-captcha gemを使用してform_forを使ったフォームを画像認証する

概要 みなさんこんにちはcandleです。公に開かれたフォームはスパムや総当り攻撃を受けやすいです。 そこで、画像認証を導入して、悪意のあるフォームを拒否してみましょう。 simple-captcha …

javascriptでのJSONの大きさ(サイズ)の取得

概要 みなさんこんにちはcandleです。今回はプログラミングで少し手間取ったJSONサイズ取得の問題について書いていこうと思います。 JSONはjavascirptでわりと多く使われるオブジェクト型 …

MAMPのPHPからSQLite3データベースにアクセスして値を取得する

概要 みなさんこんにちはcandleです。MAMPのSQLiteデータベースとテーブルを作成して、レコードも挿入した事なので、値を取得してみましょう。 前提 phpのバージョンが5.3以上である SQ …

  • English
  • 日本語

ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー