Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 如何创建具有特定类型的Emgu::CV::图像?_Opencv_C++ Cli_Emgucv - Fatal编程技术网

Opencv 如何创建具有特定类型的Emgu::CV::图像?

Opencv 如何创建具有特定类型的Emgu::CV::图像?,opencv,c++-cli,emgucv,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>(gr

在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); }
Emgu::CV::Image^mask=gcnew Emgu::CV::Image(灰色->大小);
尝试{CvInvoke::cvDistTransform(255 gray,tmp,CvEnum::DIST_TYPE::CV_DIST_L1,3,nullptr,mask);}
这就产生了错误:

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

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

我使用的是页面中的EmguCV 2.0,特别是EmguCV 2.0部分,它提供了以下关于图像深度的说明:

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

  • 字节
  • 斯拜特
  • 单个(浮动)
  • 双重的
  • UInt16
  • Int16
  • Int32(int)
我相信这意味着它根本不使用CV_XXX类型,只使用上述类型

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