joppot

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

プログラミング

C++のopencvでhelloworld

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

Pocket

file8001243264561

概要

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

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


前提

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


ソースを用意する

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

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

touch helloworld.cpp

で作成できます。

デスクトップ_—_bash-6

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

emacs helloworld.cpp

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


#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
int main() {

  cv::Mat img;
  img = cv::imread("./gear.jpg");
  cv::namedWindow("Image");
  cv::imshow("Image", img);

  cv::waitKey(0);
 
  return 0;

}

デスクトップ_—_emacs 2

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

gear

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

ソースを保存したら完了です。


コンパイルする

helloworld.cppをコンパイルします。g++のコンパイルを使います。コンパイルにはopencvで使う(よく私も知らないのですが)フラグを沢山たてる必要があります。こうしないとエラーがでます。

g++ -o helloworld helloworld.cpp -lopencv_core -lopencv_imgproc -lopencv_calib3d -lopencv_video -lopencv_features2d -lopencv_ml -lopencv_highgui -lopencv_objdetect -lopencv_contrib -lopencv_legacy

デスクトップ_—_bash-3

コンパイルできました。

デスクトップ_—_bash-5


helloworldを実行する

ではfinderでデスクトップを開いて、今、作成したhelloworlを実行しましょう。

デスクトップ-3

私の場合実行ファイルをクリックするとエラーで消えてしまいました。

もしも、同じ様に開けない場合は、ターミナルから起動してみましょう。

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

./helloworld

で実行できます。

デスクトップ_—_helloworld

実行結果は下の様になります。

Image

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

helloworld成功です。


まとめ

opencvで画像を読み込むこれがopencvのhelloworldと言ってもよいのではないでしょうか。

実行ファイルが直接実行できないのは気がかりでしたが、まあいまのところは別に良いや。

スポンサードリンク

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

-プログラミング
-,

執筆者:


comment

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

関連記事

ruby on railsのデータベースのテーブルにカラムを追加、削除する

概要 みなさんこんにちはcandleです。今回はrailsのカラムの追加の仕方を紹介します。 本当にrailsは規約が多くて、多くて、なんでデータベースを直接いじれないんだと。 早速やっていきましょう …

phpmyadminでmysqlデータベースの照合順序を変更する

概要 みなさんこんにちはcandleです。 ちょっとした事なのですが、意外に分からなかったのでまとめました。 phpmyadminを使ってデータベースを作ると、うっかり、utf8_general_ci …

railsのfluent-loggerとdevise gemを使ってユーザーの行動をfluentdサーバに収集する

概要 fluentdと言えば、ビックデータで扱うようなデータを集め出力するサーバですが、これとrailsのfluent-logger gemとdevise gemを組み合わせてユーザーの行動ログをとっ …

ruby on railsのckeditor gemをapacheのproductionの本番環境で動かす

概要 みなさんこんにちはcandleです。今回はckeditorを本番環境で動かしてみたいと思います。 とは言っても基本的な記述はdevelopment環境と同じなので、そこまでは前回の記事を参照お願 …

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

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

  • English
  • 日本語

プロフィール


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

スポンサードリンク

アーカイブ