多通道图像中的 calcCovarMatrix 和未解决的断言错误

2024-01-07

我尝试从存储在 cv::Mat 中的图像获取协方差矩阵。我需要它来计算马哈拉诺比斯距离并尝试进行一些颜色分割。

这是我的代码:

Mat covar, selection, meanBGR;
selection = src(roi);
calcCovarMatrix(selection, covar, meanBGR, CV_COVAR_NORMAL|CV_COVAR_ROWS);

Mat src 来自网络摄像头和标准 BGR opencv 格式,因此 CV_32FC3。像素以行向量顺序存储(我认为)(蓝色,绿色,红色)..所以我认为我的代码是正确的。但我收到此运行时错误:

mulTranspose 中的断言失败 (src.channels() == 1)

我也尝试用这种方式制作一个向量:

vector<Scalar> samples;

for(int i=0; i<selection.rows; i++) {
    for(int j=0; j<selection.cols; j++) {

        Scalar pixel = selection.at<Scalar>(i,j);
        Scalar sample(pixel[0], pixel[1], pixel[2]);
        samples.push_back(sample);
    }
}

calcCovarMatrix(samples, covar, meanBGR, CV_COVAR_NORMAL|CV_COVAR_ROWS);

但我总是遇到同样的错误。阅读manual http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html#calcCovarMatrix没有任何想法。


我认为你不能向它传递一个 3 通道矩阵。这个小样本是否有效:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

#include <iostream>

using namespace cv;
using namespace std;

int main(int /*argc*/, char** /*argv*/)
{
    Mat_<float> samples = (Mat_<float>(3, 3) << 1.0, 2.0, 3.0,
                                                4.0, 5.0, 6.0,
                                                7.0, 8.0, 9.0);

    Mat cov, mu;
    cv::calcCovarMatrix(samples, cov, mu, CV_COVAR_NORMAL | CV_COVAR_ROWS);

    cout << "cov: " << endl;
    cout << cov << endl;

    cout << "mu: " << endl;
    cout << mu << endl;

    return 0;
}

它应该输出:

cov: 
[18, 18, 18;
  18, 18, 18;
  18, 18, 18]
mu: 
[4, 5, 6]

希望有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多通道图像中的 calcCovarMatrix 和未解决的断言错误 的相关文章

随机推荐

  • 最长的数字循环周期

    我试图找到小于 1000 的数字 该数字除以 1 时会产生最长的重复数字串 我有一个十进制数字列表 必须找到具有最长重复序列的数字 这是我到目前为止所拥有的 numbers 2 999 decimal representations num
  • 由于 Android 不活动,15 分钟后自动注销

    如何在android中使用计时器因用户不活动而在15分钟后自动注销 我在 loginActivity java 中使用以下代码 public class BackgroundProcessingService extends Service
  • 错误:无法显示子报表。子报告在预览中有效 - 但在部署时无效

    我有一个运行多个子报告的主报告 我的一个子报告在预览中运行得非常好 但是当我部署该报告并从浏览器运行它时 我只是得到 错误 无法显示子报表 我做了一些研究 但仍然不确定问题是什么 我在不同的浏览器中尝试过 主报告和子报告的数据源都使用相同的
  • 类型错误:无法读取未定义的属性“measureInWindow”

    环境 Windows 10 Node js 10 x Expo 35 0 0 React 16 8 React native 0 62 0 React navigation 3 0 7 开发了一个简单的应用程序来测试 Android 应用程
  • 如何创建提交登录表单的书签

    我意识到从安全角度来看这并不是很好 但请幽默一下 有没有办法创建一个提交表单 例如登录表单 的书签 例如 这有效 但前提是当前浏览器窗口中加载了页面 javascript function document body innerHTML
  • 如何在android中生成release key

    我已经完成了简单的地图应用程序 这里我从 debug keystore 获得了 api 密钥 它在模拟器上工作正常 当我尝试将其作为 apk 文件获取并在设备上运行时 它没有显示地图 我想我需要为其创建发布密钥 我如何为其生成发布密钥以及如
  • 使用向导时如何将输入框值绑定到支持 bean 属性中的映射值

    我正在使用 Primefaces 向导组件 在一个选项卡上 我根据以前的选项卡输入 用户类型 动态创建输入框 输入框文本标签源自列表 在我的支持 bean 中 我有一个映射 其中包含作为键的输入标签和作为值的输入框输入 单击下一步 我希望使
  • 反应本机应用程序中的 canOverrideExistingModule 问题

    大家好 我尝试使用react native camera模块创建一个相机应用程序 当我尝试在我的设备 Android 手机 上运行此应用程序时 出现以下错误 任何人都可以为我提供解决方案吗 转到文件 MainApplication java
  • IIS url 重写 - css 和 js 被错误地重写

    我的 urlrewrites 存在问题 每当我指向要重写的页面时 它都无法显示 因为它还将规则应用于我的网页中引用的 css 和 js 文件 为了尝试解决这个问题 我放入了 css 和 js 的完全限定路径 这在未应用重写的任何页面上都呈现
  • 创建对变量的引用(类似于 PHP 的“=&”)?

    在 PHP 中 可以创建一个引用变量 以便两个命名变量可以查看相同的值 a 1 b a echo a 1 echo b 1 b 2 echo a 2 我希望在 Python 中实现类似的目标 具体来说 我想创建对对象属性的引用 例如 cla
  • C - 使用 scanf 读取特殊字符,例如 'ã'

    是否有可能使scanf读取所有特殊字符 我知道你可以使用scanf n s string 强制 scanf 接受空格 但是我可以对特殊字符做同样的事情吗 例如 当我尝试输入 N o 时 结果只是 N 就像scanf遇到 unicode 字符
  • 如何在 Visual Studio 中安装 C# 类库?

    我正在尝试使用我找到的类库关于这里的另一个问题 https stackoverflow com a 281381 1934286 总的来说 我对 C Visual Studio 和 OOP 还很陌生 所以如果这不是正确的问题 请原谅我 我点
  • GIT 无法生成 Askpass 克隆 Git 存储库时没有此类文件或目录 [重复]

    这个问题在这里已经有答案了 我参考了很多网站来解决 VS 2017 TFS 中的 Git 存储库克隆问题 但无法修复 请帮我 以下是 Visual Studio 版本详细信息 微软 Visual Studio 专业版 2017 版本 15
  • 构建 xunit.xml 文件后应该使用 xUnitPublisher 还是 xUnitBuilder?

    我正在自动化 dot net core 构建 鉴于 Jenkins 文件中的以下代码片段 我为每个测试项目生成一个 XML 文件 在接下来的步骤中 我想处理这些 XML 文件 詹金斯给出了两个选择 我很困惑该使用哪个选项 我使用 处理 还是
  • 循环使用translate3d制作的轮播

    我有一个带有拖动选项的轮播translate3d 考虑到使用translate3d为了转到下一张幻灯片 我最终翻译到了轮播的末尾 你能帮我找到解决方案吗 下一张幻灯片逻辑 goNext this carousel style transfo
  • 如何访问隐藏在 DS.PromiseArray 中的数组数据

    这是以下内容的后续内容 访问 ember js 中的另一个模型数据 https stackoverflow com questions 19386351 accessing another models data in ember js 我
  • 分别了解 offsetWidth、clientWidth、scrollWidth 和 -Height

    StackOverflow 上有几个关于offsetWidth clientWidth scrollWidth and Height 分别 但没有人给出这些值的全面解释 此外 网络上有多个来源提供了令人困惑或不正确的信息 您能否给出完整的解
  • 适合新手的 Apache Shiro 和 Java 安全性

    我对 Java 的安全模型几乎一无所知 包括 XML 配置 策略设置 任何安全框架组件 工具 例如密钥库等 以及介于两者之间的所有内容 虽然我明白最终会变成基本的对于我来说 卷起袖子深入学习 Java 安全性 我想知道使用 Apache S
  • 在 ConEmu 中启动或新选项卡时运行 autostart_console.bat?

    我在 Windows 8 Pro 上使用 ConEmu 强大的 cmd 在启动 ConEmu 或打开新选项卡时 如何 在哪里设置 conemu 运行 autostart console bat 谢谢 大多数情况下你需要使用以下命令Comma
  • 多通道图像中的 calcCovarMatrix 和未解决的断言错误

    我尝试从存储在 cv Mat 中的图像获取协方差矩阵 我需要它来计算马哈拉诺比斯距离并尝试进行一些颜色分割 这是我的代码 Mat covar selection meanBGR selection src roi calcCovarMatr