山东省商务厅网站开发区管理处,银行存款营销活动方案,用ps怎么做网站,合肥做网站的的公司有哪些返回目录#xff1a;OpenCV系列文章目录#xff08;持续更新中......#xff09;
前一篇#xff1a;OpenCV4.9.0在windows系统下的安装
后一篇#xff1a; 警告
本教程可以包含过时的信息。
Image Watch 是 Microsoft Visual Studio 的插件#xff0c;可用于在调…返回目录OpenCV系列文章目录持续更新中......
前一篇OpenCV4.9.0在windows系统下的安装
后一篇 警告
本教程可以包含过时的信息。
Image Watch 是 Microsoft Visual Studio 的插件可用于在调试应用程序时可视化内存中的图像例如 cvMat 或 IplImage_ 对象这有助于跟踪错误或者简单地了解给定的代码段正在做什么
先决条件
本教程假定您具备以下条件
安装了 Update 1 的Visual Studio 2012 Professional或更高版本。更新1可在此处下载。在Windows计算机上安装OpenCV教程在 Windows 中安装能够在Visual Studio中创建和构建OpenCV项目教程如何在“Microsoft Visual Studio”中使用OpenCV构建应用程序
安装
下载 Image Watch 安装程序。Visual Studio 2019 |Visual Studio 2017 中文版 |Visual Studio 2012、2013、2015安装程序位于扩展名为 .vsixVisual Studio 扩展的单个文件中。要启动它只需双击Windows资源管理器中的 .vsix 文件。安装程序完成后请确保重新启动 Visual Studio 以完成安装
例
Image Watch适用于使用 OpenCV 图像对象例如cvMat的任何现有项目。在此示例中我们使用一个最小的测试程序该程序从文件加载图像并运行边缘检测器。若要生成程序请在 Visual Studio 中创建一个控制台应用程序项目将其命名为“image-watch-demo”并在下面插入源代码 // Test application for the Visual Studio Image Watch Debugger extension
#include iostream // std::cout
#include opencv2/core/core.hpp // cv::Mat
#include opencv2/imgcodecs/imgcodecs.hpp // cv::imread()
#include opencv2/imgproc/imgproc.hpp // cv::Canny()
using namespace std;
using namespace cv;
void help()
{
cout---------------------------------------------------- endlThis is a test program for the Image Watch Debugger endlplug-in for Visual Studio. The program loads an endlimage from a file and runs the Canny edge detector. endlNo output is displayed or written to disk.endlUsage: endlimage-watch-demo inputimage endl---------------------------------------------------- endlendl;
}
int main(int argc, char *argv[])
{
help();
if (argc ! 2)
{
cout Wrong number of parameters endl;
return -1;
}
cout Loading input image: argv[1] endl;
Mat input;
input imread(argv[1], IMREAD_COLOR);
cout Detecting edges in input image endl;
Mat edges;
Canny(input, edges, 10, 100);
return 0;
} 确保活动解决方案配置内部版本 – Configuration Manager设置为调试版本通常称为“调试”。这应该会禁用编译器优化以便调试器中的查看变量可以可靠地工作 生成解决方案“生成 生成解决方案”或按 F7
在继续之前不要忘记将输入图像的命令行参数添加到项目中右键单击项目 – 属性 – 配置属性 –调试然后使用图像的位置设置字段命令参数
现在在源行上设置一个断点上面写着Mat edges;
若要设置断点请右键单击源行然后从上下文菜单中选择“断点 –插入断点”
在调试器中启动程序Debug – Start Debugging或按 F5。命中断点时程序将暂停Visual Studio 会在断点处显示黄色指令指针 现在您可以检查程序的状态。例如您可以打开“局部变量”窗口“调试”“Windows ”–“局部变量”该窗口将显示当前作用域中变量的名称和值 请注意内置的“局部变量”窗口将仅显示文本。这就是 Image Watch 插件的用武之地。Image Watch 就像另一个 Locals 窗口但内置了一个图像查看器。若要调出“图像监视”请选择“视图”-“其他窗口”-“图像监视”。与 Visual Studio 的“局部变量”窗口一样Image Watch 可以停靠到 Visual Studio IDE。此外Visual Studio 还会记住你是否打开了图像监视以及它在调试会话之间的位置。这意味着您只需执行一次此操作 - 下次开始调试时Image Watch 将返回到您离开的位置。下面是停靠的 Image Watch 窗口在断点处的样子 左上角的单选按钮 Locals/Watch 选择下面的图像列表中显示的内容Locals 列出当前范围内的所有 OpenCV 图像对象此列表会自动填充。监视显示已固定以进行连续检查的图像表达式此处未介绍有关详细信息请参阅图像监视文档。图像列表显示基本信息例如宽度、高度、通道数以及缩略图如果可用。在我们的示例中图像列表包含我们的两个局部图像变量即输入和边缘。
如果图像有缩略图左键单击该图像将在右侧的图像查看器中选择该图像进行详细查看。查看器允许您平移拖动鼠标和缩放鼠标滚轮。它还显示当前鼠标位置的像素坐标和值。 请注意列表中的第二张图像“边缘”显示为“无效”。这表示此图像对象的某些数据成员具有损坏或无效的值例如负图像宽度。这在程序的这一点上是预期的因为边缘的C构造函数尚未运行因此其成员具有未定义的值在调试模式下它们通常填充“0xCD”字节。
从这里您可以单步执行代码Debug-Step Over或按 F10并观察像素变化如果单步执行一次则 Mat edges; 语句边缘图像将从“invalid”变为“empty”这意味着它现在处于有效状态默认构造即使它尚未初始化使用 cv例如Matcreate。如果在 cvCanny 调用上再执行一步您将看到边缘图像的缩略图出现在图像列表中。
现在假设你想对 cvCanny 实现进行可视化健全性检查。通过在“图像列表”中选择边缘图像将边缘图像带入查看器并放大到具有明确定义边缘的区域 右键单击图像查看器以调出视图上下文菜单并启用链接视图菜单项旁边的复选框指示是否启用该选项。 “链接视图”功能在相同大小的图像之间切换时使视图区域保持固定。要查看其工作原理请从图像列表中选择输入图像 - 您现在应该在输入图像中看到相应的放大区域 您还可以使用向上/向下光标键在查看输入和边缘之间来回切换。这样您就可以轻松验证检测到的边缘是否与输入图像中的数据很好地对齐。 更多 ...
Image Watch 具有许多更高级的功能例如
将映像固定到监视列表以便跨作用域或调试会话之间进行检查直接在“监视”窗口内对图像进行钳位、阈值设置或差异将内存中映像与文件中的参考映像进行比较
有关详细信息请参阅在线图像监视文档 - 您也可以通过单击图像监视窗口中的帮助链接访问文档页面 参考文献
《Image Watch: viewing in-memory images in the Visual Studio debugger 》Wolf Kienzle