使用图像观察(opencv)查看位于矢量中的图像

Posted

技术标签:

【中文标题】使用图像观察(opencv)查看位于矢量中的图像【英文标题】:viewing an image reside in a vector using image watch (opencv) 【发布时间】:2015-06-10 11:30:20 【问题描述】:

在我的代码中,我有与此类似的代码:

std::vector<cv::Mat> myImages=GetMyImages();

我想在 image watch 中查看该图像,但 image watch 没有将 myImages 检测为图像,因此不显示它们。

如何在图像查看窗口中查看一张(或全部)图像?

【问题讨论】:

你是说 imshow() 吗?你想显示向量中的所有垫子吗? @GPPK 不,我的意思是为视觉工作室添加图像手表 (visualstudiogallery.msdn.microsoft.com/…) 如果是 i,我会编写一个 for 循环并将矩阵中的每个垫子设置为临时垫子,看看它是否可以看到它们? @GPPK 这就是我现在正在做的事情,但我想也许有更好的解决方案。 这可能是,图像监视扩展似乎只在它可以看到的垫子上进行。虽然我没用过,但我不确定 【参考方案1】:

它适用于我(Image Watch 版本 1.5.1106.0):单击元素旁边的放大镜时,我看到 cv::Mat

【讨论】:

【参考方案2】:

为了在一个向量中选择的垫子上进行图像观察,您需要这样做:

for (int n = 0; n < myImages.size(); n++)
        
            cv::Mt tempMat = myImages[n]);
        

从我在 ImageWatch 扩展页面上看到的内容来看,扩展需要特别查看 cv::Mat 类型的变量,我认为将其隐藏在向量中意味着扩展无法看到它。

【讨论】:

【参考方案3】:

PhilLab 的解决方案非常适用于旧版 Image Watch,但不适用于较新版本,例如带有 Visual Studio 2019Image Watch 2019

这种情况下,可以直接使用imageVector[k]

【讨论】:

以上是关于使用图像观察(opencv)查看位于矢量中的图像的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV如何在使用单个静态图像时将速度矢量绘制为箭头

openCV:图像的梯度

Opencv 图像拼接混合(Multiband blending)

使用 openCV 在 C++ 中查看灰度 RAW 图像文件

OpenCV:获取 3 通道 RGB 图像,分割通道并仅使用 R+G 查看图像

OpenCV 图像轮廓