この記事はComputer Vision Advent Calendar 2012の12/8の記事兼@sakanazensenさんへの誕生日プレゼントとして書いたものです.
つい最近,OpenCVプログラムのデバッグ中にMatの中身をプレビューできるプラグイン「NativeViewer」のv1.0がリリースされました.このプラグインの使い方について解説記事の要望があったので(30分くらいでてきとーに)書いてみました.基本的に公式のQuickStartGuideとほぼ同じ内容です.
以降の説明はVisual Studio 2012を使って説明します(Visual Studio 2010版のプラグインも用意されています).
※注意:Visual Studio Professional以上のエディションでしかプラグインは使えないようです.
■ダウンロード
配布ページからNativeViewer_VS2012_v1.0.0.vsixをダウンロードします.
■インストール
ダウンロードしたNativeViewer_VS2012_v1.0.0.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 |
#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; using namespace std; #ifdef _DEBUG #pragma comment(lib, "opencv_core243d.lib") #pragma comment(lib, "opencv_imgproc243d.lib") #pragma comment(lib, "opencv_highgui243d.lib") #else #pragma comment(lib, "opencv_core243.lib") #pragma comment(lib, "opencv_imgproc243.lib") #pragma comment(lib, "opencv_highgui243.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; } |
■実際に使ってみる
この例では2値化結果をウィンドウに描画していますが,デバッグの時に2値化の前のグレースケールが正しい結果なのか知りたいような場合もあって,従来はグレースケール用にnamedWindowとimshowを追加し,リビルド・再実行する必要がありました.地味に面倒くさいです。。。この例ではリビルドしてもそんなに時間はかかりませんがそれなりの規模のプログラムだとビルド時間がもったいないです.
NativeViewerを使うとデバッグ用に新たにnamedWindowとimshowを追加してリビルドするといった面倒な作業から解放されます.やるのはデバッグ中にCtrlキーを押しながらプレビューしたいMatクラスの変数にマウスカーソルを合わせるだけです.
ここではデバッグ中にCtrlキーを押しながら「gray」という変数にマウスカーソルを合わせてみます.すると,以下のようなプレビュー画面が表示され,grayの描画内容を視覚的に確認することができます.デバッグ時にとても便利なのでVisual Studio使いにはオススメのプラグインです!
■オプション
また,Visual Studioのオプション画面からNativeViewerに関するレイアウト等の設定を行うことができます.
■アンインストール
「拡張機能と更新プログラム」画面から「NativeViewer」を選択して,「アンインストール」ボタンを押すことでプラグインをアンインストールすることができます.
■余談
12/22あたりにComputer Vision Advent Calendar 2012向けの別の記事公開予定です(他人事).過度な期待はせずにお待ちください。。。