読者です 読者をやめる 読者になる 読者になる

Visual Studioでデバッグ時にOpenCVのMat等の画像を表示できるプラグインが便利

C++ OpenCV Programming

OpenCV公式サイトのNEWSを見てたら「Image Watch plugin for Visual Studio」というのを見つけた.使ってみたら便利そうだったのでメモ.もっと早く知りたかった.

わざわざimshowとかのコードを追加してウィンドウを表示させなくてもMatの中の画像を確認できる.また,拡大表示とか画素値の表示も出来るため通常のOpenCVの画像表示用のウィンドウより便利な気がする.

Image Watch plugin for Visual Studioのインストール

以下のサイトからダウンロードしてきて指示にしたがってインストールするだけ.
Image Watch extension

以下のサイトに詳しい手順等載ってます.
Image Watchの使い方 | dandelion's log

使ってみる

以下のコードで試してみた.画像を表示させるためのコードは特に必要ない.画像が入っている変数があれば自動で表示してくれる.

#include <opencv2/opencv.hpp>

using namespace cv;

void main()
{
	// 画像読み込み
	Mat img = imread("Penguins.jpg");
	// Sobelフィルタ
	Mat imgSobel;
	Sobel(img, imgSobel, img.depth(), 1, 1);
	// ラプラシアンフィルタ
	Mat imgLaplacian;
	Laplacian(img, imgLaplacian, img.depth());
	// Cannyアルゴリズム
	Mat imgCanny;
	Canny(img, imgCanny, 50, 200);
}

一番下の行にブレークポイントを置いて,デバッグ実行して止める.

「表示」メニューの中から「Image Watch」を探してクリックしてウィンドウを表示させる.
f:id:whoopsidaisies:20141128173607p:plain

そうすると以下の様なウィンドウが出てきて,Mat型の変数とその中身の画像が表示される.
f:id:whoopsidaisies:20141128165602p:plain

左側に画像一覧があるので,クリックすれば以下のようにその画像が表示される.
f:id:whoopsidaisies:20141128165507p:plain

マウススクロールで拡大可能.
f:id:whoopsidaisies:20141128173940p:plain

最大まで拡大すると各画素の画素値が数字で表示される.
f:id:whoopsidaisies:20141128174024p:plain

画素を右クリックしたら,その画素のアドレスのコピーとかも出来るもよう.

以上のようにOpenCVのMatの中の画像を簡単に確認できるので,Visual StudioでOpenCVを使う場合はかなり便利だと思う.

試してないけど配布サイトの説明によると,cv::Mat_<>, CvMat, _IplImageなんかにも対応しているらしい.