我正在使用
Microsoft
扩展 Image Watch 来预览 OpenCV
图像。
我尝试通过添加容器密钥来可视化容器内的图像,但
Visual Studio
调试器监视窗口不支持直接在容器内添加变量。
例如:
#include <opencv2/opencv.hpp>
struct MyStruct {
cv::Mat img;
};
int main() {
cv::Mat img(64, 64, CV_8UC3, cv::Scalar(0, 0, 255));
map["a"].img = img;
}
当我尝试通过添加到监视窗口来可视化图像时
map["a"].img
,它是无效的。
我需要通过检查/迭代地图来添加它,直到找到所需的键:
仅输入此名称才有效:
((std::_Tree_node<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,MyStruct>,void *>*)0x0000026e1a358a70)->_Myval.second.img
经过大量搜索,我发现了这个:Natvis框架。
我想知道它是否适用于这个用例,我以前从未使用过 natvis。
我按照教程添加了一个新的
.natvis
到我的项目中:
Project > Add new item > Visual C++ > Utility > Debugger visualization file (.natvis).
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
</AutoVisualizer>
现在我完全迷失了,我重新阅读了示例,但我仍然不知道如何创建特定视图以便能够通过其键预览图像,即
map["a"].img
。