aihot  2017-05-24 20:16:05  OpenCV |   查看评论   

          之前在vs2010中写OpenCV程序时经常用NativeViewer,安装此插件后,在调试代码时,对于cv::Mat变量,CV_TYPE类型为CV_8UC1或CV_8UC3,可以随时查看显示结果。其操作步骤为:

 
1.        从http://sourceforge.net/p/nativeviewer/wiki/QuickStartGuide_VS2010/下载最新版本NativeViewer,并按照介绍的步骤在vs2010中进行安装;
 
2.        打开一个工程,在Debug下设置断点,当光标定位到cv::Mat变量时,CV_TYPE类型必须为CV_8UC1或CV_8UC3中的一种,其它类型不行,此时按住Ctrl键,然后将光标定位到此变量时,将会以图像形式将内容显示出来。
 
最近用vs2013,发现NativeViewer不支持,它只支持vs2010,发现有一个比NativeViewer更强大的插件Image Watch,它可以支持vs2012、vs2013及vs2015。其操作步骤为:
 
1.        从http://visualstudiogallery.msdn.microsoft.com/e682d542-7ef3-402c-b857-bbfba714f78d下载最新版本Image Watch(ImageWatch.vsix);
 
2.        安装ImageWatch,双击ImageWatch.vsix进行安装即可;
 
3.        打开一个OpenCV工程,在Debug下设置断点,通过view -> other windows -> Image Watch打开Image Watch窗口,即可显示cv::Mat图像。
 
Image Watch可进行的操作包括:
 
1.      放大、缩小图像;
 
2.      将图像保存到指定的目录;
 
3.      显示图像大小、通道数;
 
4.      拖拽图像;
 
5.      可以查看指定坐标的像素值(按照在内存中的顺序显示);
 
6.      Link Views:所有相同尺寸的图像共享一个视图;
 
7.      像素值以十六进制显示还是十进制显示;
 
8.      在Watch窗口可对图像进行的操作包括(Image Watch包括Locals和Watch两个窗口):
 
(1)、提取指定通道图像:@band(img, number);
 
(2)、对指定图像进行阈值化:@thresh(img, threshold);
 
(3)、对图像像素值进行取绝对值操作:@abs(img);
 
(4)、对图像像素值进行缩放操作:@scale(img, factor);
 
(5)、通过1/255方式缩放像素值操作:@norm8(img);
 
(6)、沿y轴水平flip:@fliph(img);
 
(7)、沿x轴垂直flip:@flipv(img);
 
(8)、对图像进行矩阵转置操作:@flipd(img);
 
(9)、对图像进行顺时针90、180、270度操作:@rot90(img)、@rot180(img)、@rot270(img);
 
(10)、计算两幅图像的像素差值:@diff(img0, img1);
 
(11)、载入图像:@file(path),如 @file(“d:\1.jpg”);
 
(12)、将指定的内存地址内容按照指定的图像格式显示出来:@mem(address, type, channels, width, height, stride),如@mem(0x00000000003d1050,UINT8, 3, 256, 256, 768 );
 
Image Watch的更详细介绍可参考:http://research.microsoft.com/en-us/um/redmond/groups/ivm/imagewatchhelp/imagewatchhelp.htm
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自VS2013中图像监视(Image Watch)插件的使用(OpenCV)

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]