问题标签 [opencv-mat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1834 浏览

opencv3.0 - 如何在 OpenCV 3.0 中将 Mat 转换为 cvMat

如何将 OpenCVMat对象转换为cvMat对象?

根据这个 OpenCV 互操作性文档(1),这种转换应该是可能的。但是在声明cvMat时,编译器在行给出以下错误消息cvMat deprecatedImg

:错误:<预期';' 在'deprecatedImg'之前>,

如何解决这个问题?

0 投票
2 回答
1582 浏览

point-cloud-library - 点云数据到垫子数据

我必须将层数据转换为垫子数据。为此,我使用了 pcl 的 plyreader 并将其转换为点云,现在我的下一步是将其从点云转换为 mat 数据。我猜我从 plyreader 获得的点云是杂乱无章的。我一直在尝试提取点云的 xyz 值,然后将其复制到数据中。

pcl::PointCloud::Ptr 云(新 pcl::PointCloud);// 创建一个新的点云 (POINTXYZ)

我知道这是错误的。我发现了一篇关于此的帖子,但那是针对有组织的云链接在这里 -->

访问【点云转垫】

从 PointCloud 到 Mat 的转换

我是这个领域的新手。如果有人知道或可以提供帮助!!!

提前致谢

0 投票
2 回答
5872 浏览

c++ - 如何在 OpenCV 中创建一维垫子并将所有条目初始化为零?

以下代码似乎不起作用。这里有一个类似的问题How to fill Matrix with zeros in OpenCV? 但是,我想要一个 1-D mat,而不是这个链接中提到的 2-D mat。

0 投票
0 回答
81 浏览

opencv - 你如何将 B、G 和 R 分量值直接放入 cv::Mat 的一个像素中?

以及如何获得组件的价值。我知道如何使用 IplImage* 和 convwert cv::IplImage<->cv::Mat,但我在 2.4 版中发现了一个错误,有时 IplImage* 不会作为函数的参数进行汇总。请解释一下,如何使用 cv::Mat 的 BGR 组件。

0 投票
1 回答
1199 浏览

c++ - OpenCV Mat::zeros 未填充 0

我有这个代码:

whereMarkerSize=6CV_8UC1最好是不可更改的(用于解决方案)。

但我得到这个输出:

怎么会,我该如何解决?

0 投票
0 回答
702 浏览

opencv - 多维 cv::Mat 初始化和显示

作为一名 Matlab/Python 人员和 C++ 新手,我非常沮丧地转向使用 C++ 中的 OpenCV 进行图像处理。我正在使用 Kinect v2,所以我在网上只找到了一个我正在修改的 Windows 示例。

此示例将深度图作为 cv::Mat 提供,并且我已经计算了从 kinect v2 获取的深度图像上的表面法线。此表面法线图像包含每行、col 元素的 i、j、k 向量分量(3 个通道),我试图将此表面法线图像(3-D 浮点矩阵)可视化为 RGB 图像。这在 matlab 中很容易做到,因为您只需执行 imshow(normMap) 并显示一个 RGB (ijk) 图像,其颜色指定法线的方向。

我正在尝试在 C++ 中做类似的事情。由于我使用的是 opencv,我决定使用 cv::Mat 来存储每个像素的 ijk 通道,并将正常矩阵(我们称之为 normMat)初始化为 CV_32F 矩阵,如下所示:

但是,如果我调试,dims(normMat.rows 和 normMat.cols)显示为-1,所以我不知道我的初始化是坏的还是我错过了什么,或者它是否正常。

我将表面法线分量存储为:

他们似乎得到了正确的存储,因为我已经在调试(使用normMat.at<float>(i,j,k))中验证了这一点。

然后我试图将图像显示为:

但是第二行抛出了一个异常:

我也尝试normMat直接显示抛出相同的异常。这意味着将 3 通道图像显示为 3D 矩阵或将其转换为 2D-3 通道垫显然有问题。我也尝试将 normMat 初始化为

但是如果我可以这样说的话,我在将数据添加到“2D 3 通道矩阵”(CV_32FC3)的 3 个通道时遇到问题。

我要做的就是将此 normMat 显示为 RGB 图像。任何输入,建议都受到高度赞赏。谢谢!

0 投票
1 回答
5060 浏览

c++ - OpenCV clone() 和 copyTo() 方法不会产生与原始相同类型的 Mat?

我是 OpenCV 的新手,并且正在阅读一本书。我正在尝试使用以下内容提取指示组件区域的二进制图像:

执行时,会产生以下错误:

错误肯定是正确的,正如我type2str在这篇 SO 帖子中使用函数验证的那样: 如何在 OpenCV 中使用 Mat::type() 找出 Mat 对象的类型

我也尝试使用image.copyTo(result)而不是clone(),但这会产生相同的错误消息。我做错了什么,如何复制 aMat以获得相同的类型?

我猜 hacky 的解决方案是将结果的颜色转换为与图像的颜色匹配,如下所示:OpenCV: How to convert CV_8UC1 mat to CV_8UC3但这似乎是错误的,不是吗?

0 投票
1 回答
3615 浏览

c++ - C ++ OpenCV不在mat图像上绘制圆圈

我有使用 cv::Mat 显示的图像,我试图用圆圈突出显示某些点

但是,除了相关图像之外,图像上没有显示任何内容。我哪里出错了,如何解决?

0 投票
1 回答
327 浏览

ios - 如何使用 OpenCV 的 cv::Mat& 计算“变异系数”?

我正在尝试构建一个 iOS 来检测来自相机的图像变化。

OpenCV 的 iOS SDK 提供了一个传递 cv::Mat& 的委托方法。

如何使用 cv::Mat&计算“变异系数” ?

我是否应该通过使用 cv::Mat& 组合多种方法来寻找解决方案?

作为 OpenCV 的新手,如果能收到任何提示,我将不胜感激。

0 投票
1 回答
1628 浏览

c++ - shift image content in OpenCV

My task is to periodically update a cv::Mat m of r rows and c cols, in this way:

  1. shift by 1 column the whole m to the right, dropping away the last column at position c-1
  2. randomly generate the new column at position 0
  3. refresh the plot of m

This will result in a sort of belt conveyor simulation, for the sake of clarity. However, the problem arises in point 1 when m has to be shifted.

I found two different solutions, namely A and B, both ending in the same result. This suggests me that I'm doing something wrong.

Method A follows:

Method B follows:

And here's the output as an example small m (random values are spawning on the left):

cycle 1

cycle 2

cycle 3

it is clear that an extra column made of zeros appears somehow... and I really cannot figure how.

P.S. If I set offset = 3 the output scales by a factor 2, and so on.

cycle 2