以上已经全部安装配置成功。
ImageWatch是微软提供的VS插件,支持在debug模式下预览内存bitmap图像、在VS2012版本才开始支持在debug模式下OpenCV内存对象Mat图像调试预览。插件官方的下载地址为:
https://marketplace.visualstudio.com/items?itemName=VisualCPPTeam.ImageWatch
下载之后双击ImageWatch.vsix文件看到如下界面
点击【安装】执行安装程序。成功完成安装记得一定要重新启动VS2015
在VS2015中新建一个控制台项目,命名为imagewatch_demo然后根据向导一步一步操作到最后一步时候选择空项目,再按【完成】,如下图所示
在源文件中创建一个main.cpp文件,添加如下的代码(实现了简单的图像盒子模糊操作)
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv) {
Mat src = imread("D:/images/master.jpg");
if (src.empty()) {
printf("could not load image...\n");
return -1;
}
namedWindow("input", CV_WINDOW_AUTOSIZE);
imshow("input", src);
Mat dst;
boxFilter(src, dst, -1, Size(11, 11), Point(-1, -1), true);
imshow("box blur", dst);
waitKey(0);
return 0;
}
然后在源代码文件中添加调试断点,图示如下:
直接按F5或者VS2015
菜单栏 –>【调试】 –>【开始调试】菜单
代码会运行到调试断点处停止运行,等待调试!
点击【视图】->【其它窗口】->【Image Watch】
打开ImageWatch调试插件
继续调试,执行盒子模糊之后在查看,显示如下:
可以查看图像Mat对象的每步执行结果,特别方便在图像处理当中找到哪一步或者那个算法调用不正确导致最终输出图像错误。相关输出信息解释如下图:
此外通过鼠标滚轮可以实现放大或缩小图像,进行观察。当我们想对指定区域进行输入与输出对比处理结果的时候,只需要在输入图像的制定区域放大,然后选择link Views即可在左侧不同的Mat中点击,查看右侧相同区域处理情况,这招在调试图像处理的时候非常有用,显示如下:
希望大家在使用OpenCV开发的时候都快可以使用ImageWatch来帮助调试,更快的发现图像处理错误代码的位置,提升工作效率。