问题标签 [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 回答
211 浏览

opencv - 访问多维 cv::Mat 数组的元素

我无法弄清楚如何正确访问 3D cv::Mat 数组的元素。以下代码在 Vivado HLS 中运行并失败并出现非描述性错误。这是 Vivado HLS 的问题,还是我没有正确读取值?

错误:

0 投票
0 回答
370 浏览

c++ - 如何使用 Google Colab 使用 opencv C++ 读取图像并将值存储在 MAT 中。垫子给出错误

我正在尝试读取图像并将其值存储在 Mat 中,并使用 openccv C++ 在 google Colab 中进一步使用这些值。但是我无法正确使用这些功能,因为我正在附加代码并且 google colab 无法运行它。

问题看起来meanStdDev(image, mean, stddev, cv::Mat::Mat());

谢谢

0 投票
0 回答
86 浏览

c++ - cv::Mat::at 和 cv::minMaxLoc 函数之间的差异

我有一个CV_8U类型的cv::Mat。如果我像这样使用 cv::minMaxLoc 函数:

我得到:

最大值 = 255,最大值位置 = [127, 126]

然后,如果我使用以下代码:

结果为 0

实际上,我使用 cv::Mat::at 和 cv::imshow() 将矩阵的每个元素都设为零。但是 cv::minMaxLoc 给出了正确的答案。所以我想知道是否有人对为什么这两个函数不同意有任何见解。

0 投票
3 回答
600 浏览

c++ - 如何检查给定参数是否为 cv::noArray()?

我想实现一个将图像作为可选参数的函数。如果传递了图像,我想使用它 - 否则我想计算一个默认值。在 OpenCV 库cv::noArray()中用于此目的。像这样的东西:

如何以编程方式检查可选参数是否已给出或默认为cv::noArray().

由于我没有找到任何文档,因此它也可能对其他人有帮助。

0 投票
1 回答
934 浏览

c++ - C++ openCV垫初始化

我对 OpenCV 完全陌生,我正在尝试cv::Mat从两种不同类型的数据中初始化两个矩阵。一个是简单的单通道uint16_t灰度值数组,第二个应该保存来自uint8_t保存 RGB 565 值数组的 RGB 值(每个像素占用 2 uint8_t,所以它基本上是 的数组uint16_t)。我想要一个单香奈尔矩阵和一个 3 香奈尔矩阵(有时可能会转换为一个香奈儿……但我还没有完全做到。

现在,我知道第二次初始化是错误的。所以这是我的问题的一部分,如何最好地将 rgb565values 数组转换为cv::Mat. 然而,在我的理解中,第一次初始化应该可以工作。使用 进行测试时cv::imwrite(),第一个只产生正确大小的空白白色图片,后三个相同(正确)图片的部分重叠剪影,但不是 RGB。任何意见,将不胜感激。

0 投票
2 回答
771 浏览

c++ - 在cpp中来回将xtensor xarray转换为opencv mat

我正在寻找一种快速可靠的转换方式xt::xarray <-> cv::mat / cv::mat1f。在我的具体情况下,我对 2 维和数据类型浮点数表示什么,但当然欢迎更一般的答案!

目前,我有一个元素解决方案。这是非常强大的,但我希望有一个更快的。我在实现这一点时遇到了一些麻烦。

Elementwise 解决方案

输出

0 投票
0 回答
317 浏览

c++ - 使用 nlohmann/json 库序列化 cv::Mat

我想用 nlohmann/json 库序列化我自己的 Camera 类:

如您所见,我使用 NLOHMANN_DEFINE_TYPE_INTRUSIVE 宏来创建一个具有相同名称的简单 json。内在函数_和失真_成员具有第三方类型 cv::Mat。因此我必须在 nlohmann 命名空间中专门化 adl_serializer:

由于 cv::Mat 类型具有 cv::MatSize 类型的成员,因此 cv::MatStep 我必须为它们专门化 adl_serializer。由于这两种数据类型都不是可复制构造的,而是可移动构造的,因此我使用文档中描述的特殊 from_json 重载:

但不幸的是,序列化/反序列化无法正常工作(序列化期间的分段错误:

任何人都可以给我一个提示如何进行吗?

0 投票
2 回答
99 浏览

c++ - 用`new`调用默认参数会导致内存泄漏吗?

我正在尝试编写一个返回最大检测对象中心点的函数。这里没问题。问题是如果用户想要使用它,我还想从参数中返回前景掩码。

为了处理这种情况,我的解决方案如下:

如果mask指定了参数,则可以在main. RAII 在其他情况下是否有效,还是会出现内存泄漏?

注意:我知道我可以将函数重载 2 行,但我想知道是否可以通过使用默认参数而不是使用指针来正确执行此操作(输入类型是严格的)。

另一个注意事项:如果cv::noArray()可以使用或类似的功能,那是完全可以的。

示例用法:

0 投票
1 回答
88 浏览

c++ - 在 QT 5.12.9 版本中将 Qbytearray 显示为 Image

我正在阅读QByteArray使用QTcpSocket并将数组转换为 cvMat 图像。使用 imshow() 显示图像。但我得到的是灰色图像。代码如下。

在 cvtColour() 函数之后,它也没有转换成彩色图像。

提前致谢。

0 投票
1 回答
242 浏览

c++ - 如何访问 std::vector 的元素并将它们放在单独的矩阵 cv::Mat

我有一个const std::vector<cv::Mat>包含 3 个矩阵(3 个图像),为了在我的程序中进一步使用每个图像,我需要将它们保存在单独的矩阵cv::Mat中。我知道我需要遍历向量元素,因为这个向量是一个矩阵列表,但不知何故我无法管理它。最后,我还需要将 3 个矩阵推回一个向量。如果有人可以帮助我解决这个问题,我将不胜感激。我还在学习它。