各大编译工具在调试的时候都可以实时查看变量的值,了解变量值的变动情况,在图像处理相关的程序调试中,是否也可以实时查看内存中图像变量的图形信息以及图像上指定区域或点位的数值变化情况呢?

在工业机器视觉领域应用广泛的Halcon中,提供了一个程序设计界面HDevelop,HDevelop中有一个图像窗口,可以很方便的观察到随着程序运行图形的变化情况;以及包含一个图像数据和控制数据的小窗口,可以监测到各个图形相关变量的缩略图和数据信息,非常直观方便。

Halcon主界面:

图像变量窗口:

在OpenCV中,也有一个小插件可以实现类似于Halcon的实时显示功能,不必为了查看运行过程图像而在代码中插入N个imshow函数了,这个插件就是Image Watch。

Image Watch是Microsoft Visual Studio(不是OpenCV小组)开发的一款用于内存中保存图像(例如:Mat)可视化的一款插件,适用于在程序调试过程中实时显示图像和Mat矩阵中的内容,跟Matlab和Halcon很像,使用起来也很方便。

Image Watch的下载和安装

下载地址:Visual Studio插件Image Watch for OpenCV

下载完之后双击完成安装,或者拖动Image Watch到VS2012安装路径下IDE下的VSIXInstaller.exe文件上释放:

安装之后重新启动VS生效。新建一个OpenCV工程,在Debug模式下设置断点,通过依次选择view->other windows->Image Watch,打开Image Wathc窗口,即可实时显示内存中的Mat图像。

Image Watch的基本操作包括:


1. 放大、缩小图像:

鼠标放到图像上之后,通过滚轮可以调节图像缩放,右上角显示的数字是当前图像的缩放比例。

2. 将图像保存到指定的目录:

在左侧小图标上点击右键,选择“Dump to File”可以保存过程图像到本地硬盘。

3. 显示图像大小、通道数:

在Image Watch左侧小图标的右侧,显示的是图像大小,通道数和数据类型信息,如下图区域D所示:

4. 拖拽图像

图像被放大后,通过按下左键可以拖动图像移动。

5. 可以查看指定坐标的像素值(按照在内存中的顺序显示)

鼠标放在图像上,在图像上侧的标题栏里可以显示当前鼠标点坐在的位置,以及当前点的像素值;

进一步放大图像,图像的像素值会直接在图像像素点的位置上显示:

OpenCV调试利器——Image Watch插件的安装和使用的更多相关文章

  1. Laravel 调试利器 —— Laravel Debugbar 扩展包安装及使用教程

    1.简介 Laravel Debugbar 在 Laravel 5 中集成了 PHP Debug Bar ,用于显示调试及错误信息以方便开发.该扩展包包含了一个 ServiceProvider 用于注 ...

  2. 前端调试利器——BrowserSync

    此处记录一下踩过的坑 之前看的这个地址:http://www.browsersync.cn/ 也就是 BrowserSync的官网上面关于代理服务器的例子不管怎么试都不行 请看下例子 browser- ...

  3. gdb插件gef安装爬坑

    0x00: gdb是linux下的调试利器,但无奈界面不太友好,所以需要一些辅助插件. 0x01:关于插件选择 之前我一直使用的是pead,之前了解到还有个插件gef,因为gef支持多构架,而且hea ...

  4. 手机H5 web调试利器——WEINRE (WEb INspector REmote)

    手机H5 web调试利器--WEINRE (WEb INspector REmote) 调试移动端页面,优先选择使用chrome浏览器调试,如果是hybrid形式的页面,可以使用chrome提供的ch ...

  5. php调试利器 -- xdebug

    之前整理在印象笔记中,现在搬出来.分本地调试和远程调试.本文亲测通过并截图,有问题欢迎留言探讨. (参考网上多位前辈的博客,整理在笔记里忘记保存原文链接,这里无法贴出链接,望见谅)   # 痛处 一般 ...

  6. CorelDRAW 插件的安装和使用

    CorelDRAW 是一款在中国非常受欢迎的图形软件,开放的界面和编程技术,能够对它进行二次开发制作插件,插件大抵有三种gms.cpg.exe格式,下面介绍一下这三种插件的安装和使用方法. 一.gms ...

  7. Javascript 调试利器 Firebug使用详解

    Javascript 调试利器 Firebug使用详解 有时候,为了更清楚方便的查看输出信息,我们可能需要将一些调试信息进行分组输出,那么可以使用console.group来对信息进行分组,在组信息输 ...

  8. CentOS 7下的Vim自动补齐插件YouCompleteMe安装及配置

    备注:现在对于 YouCompleteMe 的安装应采用更为简单的方法,即利用 Vundle 来安装这个插件.具体方法可见: Vundle 主页 YouCompleteMe 主页 而 .vimrc 的 ...

  9. chrome调试vue.js的插件:vue.js devtools

    1.什么是vue.js devtools? vue.js devtools是chrome的一款插件,用来调试vue的一款神器. 2.为什么下载vue.js devtools? 由于vue是数据驱动的, ...

随机推荐

  1. Iaas、Paas和Saas的区别

    Iaas: Infrastructure-as-a-service(基础设施即服务),Iaas上购买的一般是主机,用户不光要开发程序,还要考虑搭建系统,维护运行环境,以及怎么容灾,怎么做到高可用,怎么 ...

  2. codeforces 571B--Minimization(贪心+dp)

    D. Minimization time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  3. php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结)

    php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结) 一.总结 从外到内解决网站大流量高并发问题---从提交一个url开始(从用户按下搜索栏回车键开始) url最开始会到d ...

  4. 在Linux上安装及配置MariaDB

    安装MariaDB 1.切换到root用户,首先执行rpm -qa | grep -i mysql检查一下是否有已安装的与MySQL相关的东西,如果有,使用rpm -e --nodeps mysql* ...

  5. pandas 学习(五)—— datetime(日期)

    date range pd.date_range('2014-11-19', '2014-11-21', freq='D') # 起始时间,终止时间,时间间隔,也即步长,D ⇒ Day,5H:以 5 ...

  6. js判断是否微信客户端

    上周接到个需求,需求是这样的:用户扫一扫二维码会产生一个链接,该链接会向后端发送个请求,返回一个 apk 的下载地址,用户点击下载按钮可以下载此 apk.然后就发生了问题,经过测试,发现用微信扫一扫打 ...

  7. [Compose] 16. Apply multiple functors as arguments to a function (Applicatives)

    We find a couple of DOM nodes that may or may not exist and run a calculation on the page height usi ...

  8. POJ2112 Optimal Milking 【最大流+二分】

    Optimal Milking Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 12482   Accepted: 4508 ...

  9. [React Router v4] Use Regular Expressions with Routes

    We can use regular expressions to more precisely define the paths to our routes in React Router v4. ...

  10. [Angular] Organizing Your Exports with Barrels

    From: import {LoadUserThreadsEffectService} from "./store/effects/load-user-threads.service&quo ...