ぴぐノート

Good code is its own best documentation.

C/C++ OpenCV

【OpenCV】OpenCVを使ってみよう!表示・回転・拡縮・二値化

投稿日:

前回インストールを行ったOpenCVライブラリを使ってサンプルプログラムをいくつか作成してみましょう。

OpenCVはすごく有名な画像処理ライブラリなのでインターネットで探せばサンプルプログラムはたくさん見つかります。
ざっくり動作確認をしたらあとは利用したい目的に合わせてプログラミングしていくと良さそうです。

今回のプロジェクト作成環境は
・Visual Studio 2017
・C++
としてプロジェクトの作成から確認していきます!

OpenCVサンプルプログラムのソリューションを作成しよう!

プロジェクトを作成しよう!

さて、まずはC++プロジェクトの作成からしていきましょう。

  1. Visual Studio 2017を起動し、[ファイル]-[新規]-[プロジェクト]をクリックします。
  2. [Win32 コンソールアプリケーション]を指定し、任意のプロジェクト名・ソリューション名を入力します。
    今回はプロジェクト名「1stChallenge」、ソリューション名「OpenCV」を設定します。
  3. アプリケーションウィザードダイアログの[ようこそ]画面では、[次へ]をクリック
  4. アプリケーション設定では、アプリケーションの種類「コンソールアプリケーション」
    追加のオプション「空のプロジェクト」にチェックを付け、[完了]クリック
  5. ソリューションエクスプローラーから「1stChallenge」を右クリックし、[追加]-[新しい項目]をクリック
  6. ソースファイル「main.cpp」を追加します。

このブログを見に来てくださっている方には冗長かもしれませんネ…。
インクルードディレクトリーの追加やライブラリディレクトリーの追加を行う前に、.cppファイルを追加しておくのが1つのポイントでしょうか。

プロジェクトにOpenCVを認識させる設定を行おう!

続いてOpenCVのヘッダーファイルやライブラリファイルの場所を指定します。

  1. ソリューションエクスプローラーから「1stChallenge」を右クリックし、[プロパティ]クリック
  2. 左側メニューから[C/C++]を選択、右側の[追加のインクルードディレクトリ」にOpenCVのヘッダーファイルの場所を指定します。
    前回の記事での環境を例にすると「D:\opencv-2.4.13.2\install\include]ですネ。
  3. 続いて、左側メニューから「リンカー」を選択、「追加のライブラリディレクトリ」にOpenCVのライブラリファイルの場所を指定します。
    前回の記事での環境を例にすると「D:\opencv-2.4.13.2\install\x86\vc15\lib]です。
  4. [OK]ボタンをクリックし、プロパティの設定ダイアログを閉じます。

これでOpenCVを利用するための準備が整いました。
早速サンプルプログラムを作成してみましょう。

サンプルプログラムを作ってみよう!

冒頭でお話した通り、表示や回転などのサンプルプログラムはインターネット上でたくさん見つかるはずです。
ここでは簡単にソースコードを記載し動作の確認のみをしていきます!

今回使用する画像はレナさんにお願いしようと思います。
レナ・ソーダバーグ
レナ(画像データ)

下記のサンプルプログラムのように”lenna.jpg”と指定し、VC上から表示する場合は、プロジェクトファイル(.vcxproj)と同じフォルダーに画像を配置してくださいネ。
実行ファイル(Debug/Releaseフォルダー)から実行する場合は、実行ファイル(.exe)と同じフォルダーに配置してください。

画像を表示してみよう!

画像を回転してみよう!

画像を拡大・縮小してみよう!


1.5倍

0.5倍

画像を二値化してみよう!

まとめ

うまく実行できたでしょうか?
各関数の詳しい説明などは省いていますが、使用している関数を検索すると有益な情報が多々得られると思うので、+αの処理を行いたい場合などはぜひ調べてみてくださいネ。

スポンサーリンク

スポンサーリンク

-C/C++, OpenCV

執筆者:

関連記事

【OpenCV】OpenCVをビルドして画像処理をしてみよう!

今日はOpenCVを使って画像表示をしてみたいと思います。 ツールやアプリケーションを作る場合、多かれ少なかれ画像処理は必要になってくるのではないでしょうか。 また画像処理関係ではまると泥沼化する場合 …

【C++11】後処理が必要なリソースはスマートポインタを使おう

オープンソースのライブラリのソースコードを呼んでいるとC++11で追加されたunique_ptrを使用しているところもちらほらと見られるようになってきています。 MFCなどを利用していれば動的確保した …

【MFC】フォルダー選択ダイアログの表示【Visual C++】

出力先の指定などフォルダー選択のダイアログを表示させたいことがあります。 フォルダー選択ダイアログを表示させるためには、SHBrowseForFolder関数を使います。 SHBrowseForFol …

【Boost】boost::property_treeの例外処理を考えよう!

ライブラリなどを使用していると、「使い方は大体分かった!使ってみよう!」とすると微妙にはまってしまうことがあります。 前回・前々回でお話しした文字コードもその一つですが今回は例外処理について考えてみま …

【Boost】boost::property_treeでXMLファイルを書き込もう!

前回の記事でXMLファイルの書き込みは難しくなくできそうでしたネ。 今回はXMLファイルの書き込みを行い、出力してみましょう。 読み込みと同じくライブラリファイルは不要で、ヘッダーファイルのみで利用で …