ぴぐノート

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

執筆者:

関連記事

C++のプリプロセッサの復習をしよう その2 【#defineの活用】

前回に引き続き、C++のプリプロセッサの復習です。 前回は#includeと#defineについて記事にしましたが、【まとめ】にも記載の通り、#defineと関連するプリプロセッサは多くあります。 今 …

【MFC】マルチスレッドでプログレスバーを実装しよう その2

昨日に続き、プログレスバーをマルチスレッドを用いて実装してみましょう。 作成の目的は、 スレッド実行中はモーダルダイアログを表示させること。 モーダルダイアログではプログレスバーを表示し進捗が分かるこ …

C++でインターフェイスを作成しよう。

私事ですが今後業務ではC++を使用することになりそうです。 今まではウェブ関連の業務であったり、ちょっとしたテスト程度だったのでJavaを中心に使っていたため、C++の文法など少し忘れ気味です&#82 …

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

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

【MFC入門】メッセージボックスにエラーコードを表示させよう

ライブラリなどを使用していると、戻り値にエラーコードを返す関数は比較的多いです。 GetLastError関数(最新のエラーコードを取得する関数)がライブラリに含まれていることもありますが、そうでない …