繁体   English   中英

如何在visual studio中使用opencv查看图像数据?

[英]How to see image data using opencv in visual studio?

我在 VS2010 中写了一个 OPENCV 项目,结果和我预期的不一样,所以我运行调试器看看问题出在哪里。 当我想查看加载的图像中的数据时,我不知道该怎么做,所以如果我想查看图像中的数据,我应该怎么做? 在matlab中查看图像的不同通道非常简单,即

a=imread('test.jpg');
p1 = a(:,:,1)
p2 = b(:,:,2)

.
.

在 opencv 中,我写了同样的东西,但我不知道如何像 Matlab 一样一次查看所有元素。

a= imread("test.jpg")
split(a,planes);
    vector<Mat> T1;
    T1 = planes[0];  

// 调试代码时如何查看T1里面的数据?

我认为这就是你要找的东西——它是一个很棒的 Visual Studio 插件

https://bitbucket.org/sergiu/opencv-visualizers

只需下载安装程序,确保 VS 已关闭,运行它,重新打开 VS,瞧! 现在,当您指向 OpenCV 数据结构时,会显示各种不错的信息。

限制:我发现多通道图像存在一些问题(它只显示第一个通道),并且在显示大矩阵时也有问题。 如果你想在一个大矩阵中查看原始数据,你可以使用带有调试变量的老式 VS 技巧:停在断点处,转到 Watch 选项卡,然后在那里写

((float*)myMat.data) ,10

其中 float 是矩阵类型, myMat 是您的矩阵, 10 是您要打印的值的数量。 它将在 myMat.data 的内存位置显示前 10 个值。 如果您没有正确选择数据类型,您将看到垃圾。 在我的示例中,myMat 是 cv::Mat 类型。

永远不要忘记可视化工具的力量:

imshow("Image", myMat);

如果您的数据适合图像。 您可以使用 contrib 模块的颜色图来增强您的可视化工具。

我真的不敢相信还没有人建议使用Image Watch 这是有史以来最神奇的插件。 它会在调试时向您显示包含所有 Mat 变量(图像(灰度和颜色)、矩阵)的视图,还有一些有用的东西,例如缩放或对比度拉伸,您甚至可以直接在插件中实时应用更复杂的功能。 它使调试任何类型的图像操作变得轻而易举,如果您使用 cv::Mat 矩阵进行计算和线性代数,它会非常有帮助。

在此处输入图片说明

我建议使用NativeViewer扩展。 它实际上在预览窗口中显示图像的内容,而不仅仅是格式正确的信息。

如果您不想使用 Visual Studio 的插件或扩展,您可以通过键入以下内容在调试监视选项卡中一一访问元素:

T1.data[T1.step.buf[0]*i + T1.step.buf[1]*j];

其中 i 是您要查看的行,j 是列。

下载 imagewatch 后使用观察窗口中的命令 (imagesLoc._Myfirst)[0]

向量中图像的索引

您可以像这样使用立即窗口和扩展方法

    /// <summary>
    /// Displays image
    /// </summary>
    public static void Display (this Mat m, Rect rect = default, string windowName = "")
    {
        if (string.IsNullOrEmpty(windowName))
        {
            windowName = m.ToString();
        }
        var img = rect == default ? m : m.Crop(rect);

        double coef = Math.Min(1600d / img.Width, 800d / img.Height);

        Cv2.ImShow(windowName, img.Resize(new Size(coef * img.Width, (coef * img.Height) > 1 ? coef * img.Height : 1)));
        Cv2.WaitKey();
    }

然后在断点处停止并在即时窗口中调用 yourImage.Display() 。

如果您可以使用 CLion,您可以使用 OpenCV 图像查看器插件,该插件在调试时只需单击即可显示矩阵。

https://plugins.jetbrains.com/plugin/14371-opencv-image-viewer

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM