【问题标题】:How to create an Emgu::CV::Image with a specific type?如何创建具有特定类型的 Emgu::CV::Image?
【发布时间】:2018-10-08 04:00:03
【问题描述】:

在 OpenCV 中,我们可以访问 CV_XX 类型,这些类型允许您使用例如 CV_32SC1 创建矩阵。如何在 EmguCV 中执行此操作?

问的原因是:

我目前正在使用 EmguCV,但在需要创建特定类型的图像时遇到错误,但无法找到这些值。

这是我的代码:

Emgu::CV::Image<Emgu::CV::Structure::Gray, byte>^ mask = gcnew Emgu::CV::Image<Emgu::CV::Structure::Gray, byte>(gray->Size);
try { CvInvoke::cvDistTransform(255-gray, tmp, CvEnum::DIST_TYPE::CV_DIST_L1, 3, nullptr, mask); }

这给出了错误:

OpenCV:标签的输出数组必须是 32sC1

所以我认为我需要将字节类型更改为 32sC1,我该怎么做?

我正在使用 EmguCV 2.0

【问题讨论】:

    标签: opencv c++-cli emgucv


    【解决方案1】:

    Working with images 页面,特别是关于 EmguCV 2.0 的部分,它提供了以下关于图像深度的说明:

    图像深度图像深度使用第二个泛型指定 参数深度。 Emgu CV 1.4.0.0 支持的深度类型 包括

    • 字节
    • SByte
    • 单(浮动)
    • UInt16
    • Int16
    • Int32 (int)

    我相信这意味着它根本不使用 CV_XXX 类型,只使用上述类型。

    对于我的问题,我将类型设置为 Int32,它似乎停止了错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 2021-06-16
      相关资源
      最近更新 更多