Build InsiderにてOpenCV入門という連載を始めることになりました.
OpenCV3.0の新機能紹介から環境構築,実装方法について紹介していく予定です.
第一回はOpenCVとは? その機能概要/構成技術/主要モジュールというタイトルでOpenCVの概要を紹介していきます.
Build InsiderにてOpenCV入門という連載を始めることになりました.
OpenCV3.0の新機能紹介から環境構築,実装方法について紹介していく予定です.
第一回はOpenCVとは? その機能概要/構成技術/主要モジュールというタイトルでOpenCVの概要を紹介していきます.
OpenCV 2.4.5リリースと同じタイミングでMS製のMatの中身をプレビューできるプラグインImage Watchが発表されました.MS製ということで簡単に使ってみました.
以降の説明はVisual Studio 2012を使って説明します(プラグインも2012版のみの配布です).
※注意:Visual Studio Professional以上のエディションでしかプラグインは使えないようです.
■ダウンロード
配布ページからImageWatch.vsixをダウンロードします.
■インストール
ダウンロードしたImageWatch.vsixをダブルクリックすると以下のようなインストール画面が表示されます.ここで「インストール」ボタンを押すとインストール完了です.
■サンプルコード
なんてこともない2値化のサンプルです.このサンプルを用いて使い方の説明を行います.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; #ifdef _DEBUG #pragma comment(lib, "opencv_core245d.lib") #pragma comment(lib, "opencv_imgproc245d.lib") #pragma comment(lib, "opencv_highgui245d.lib") #else #pragma comment(lib, "opencv_core245.lib") #pragma comment(lib, "opencv_imgproc245.lib") #pragma comment(lib, "opencv_highgui245.lib") #endif int main( int argc, char** argv) { Mat image; Mat gray; Mat bin; //(1)画像読み込み image = imread(argv[1], 1); //(2)グレースケール化 cvtColor(image, gray, CV_BGR2GRAY); //(3)2値化 threshold(gray, bin, 100, 255, THRESH_BINARY); //(4)2値化画像の表示 namedWindow("bin", 1); imshow("bin", bin); waitKey(0); return 0; } |
■実際に使ってみる
例として以下のブレークポイントで止めている場合の例を示します.
デバッグ状態を見るためにはVS2012のメニューから【表示】―【その他のウィンドウ】―【Image Watch】を選択しておきましょう.そしてデバッグ実行するとローカル変数のMatのプレビューを見ることができます.
ウィンドウ右側にプレビュー画像が表示されていますが,マウスのホイール操作で拡大縮小も可能です.また,以前紹介したNativeViewerに比べてローカル変数が一覧でプレビューできたり,アルファチャンネルにサポートしているのはメリットだと思います.
■アンインストール
「拡張機能と更新プログラム」画面から「Image Watch」を選択して,「アンインストール」ボタンを押すことでプラグインをアンインストールすることができます.
■おわりに
より詳細な情報を知りたい場合はImage Watch公式ヘルプを読むと良いでしょう.また,OpenCVのサイトにもチュートリアルページがあるため参考になります.ツールをうまく活用してより良いデバッグライフを!