如何创建具有特定类型的Emgu :: CV :: Image?

时间:2018-04-27 10:11:33

标签: opencv c++-cli emgucv

在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

1 个答案:

答案 0 :(得分:0)

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

  

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

     
      
  • Byte
  •   
  • SByte
  •   
  • 单身(浮动)
  •   
  • Double
  •   
  • UInt16
  •   
  • Int16
  •   
  • Int32(int)
  •   

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

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