当前位置: 首页 > 知识库问答 >
问题:

OpenCV 2.4远程转换不支持的格式

穆季萌
2023-03-14

我试图使用cv::distanceTransform()函数,但在运行时出现以下错误:

OpenCV错误:cvDistTransform中不支持的格式或格式组合(源图像必须为8uC1,距离贴图必须为32fC1(或在简单L1距离变换的情况下为8uC1)),

然而,我的输入垫似乎确实是CV_8U(其类型=16,深度=0,通道=3)。我的输出垫声明为CV_32FC1。违规代码:

     //...Apply laplacian
     //Convert to CV_8U
     cv::convertScaleAbs(image_laplacian, image_laplacian);

     //Distance transform
     cv::Mat edge_distance(image_laplacian.rows, image_laplacian.cols, CV_32FC1);
     cv::distanceTransform(image_laplacian, edge_distance, CV_DIST_L2, 5);

谢谢你的帮助!

共有1个答案

戚勇
2023-03-14

如果有人好奇。确保您的图像是单通道的。我假设CV_8U可以为灰度图像转换为CV_8UC1,但事实并非如此

您可以使用cv::cvtColor(src,src,cv_bgr2 gray) 以减少通道数。

 类似资料:
  • 问题内容: 我在运行存储过程时遇到以下异常: com.microsoft.sqlserver.jdbc.SQLServerException:不支持从UNKNOWN到UNKNOWN的转换。 该过程的定义如下: 我在Java中的参数定义如下: Object [] params = {“ 1,2,3”,“ d”,‘2’,“”,“”,1}; 我认为这是由角色造成的。有什么想法吗? 问题答案: 我找到了。

  • 问题内容: 在Centos 6机器上,这可以工作: 这不是: 我得到: 不要介意grep和尾巴。问题在于流程替换很麻烦: 有人可以告诉我sh在这里有什么不同吗? [编辑] 感谢您的回答! 使用 capistrano 进行部署时出现了问题。它默认使用 sh, 但是我现在将其更改为 bash 。我无法进行常规配管的原因是,使用时,grep不会在比赛后立即退出。必须对该文件再进行一次编辑,在我的情况下这

  • 我正在尝试从钱包生成CAP文件和导出文件。java,在samples目录下的java Card SDK中是标准的。我编译该类,使用转换器,并遇到以下问题: 我的Java版本和javac版本相同,Java 1.6: 我正在Ubuntu 14.04上使用JC SDK 2.2.2。转换器版本为1.3: 我似乎无法解决这个“版本50.0不支持的类文件格式”错误。鉴于1.6是版本50.0,我有点困惑为什么会

  • 1、启动MySQL管理工具.bat,并登录 2、选择菜单 工具 -> 用户管理 3、选择root,然后按下图所示选择“从任意地点访问” 4、保存[/fusion_text]

  • 我想用haar cascade数数汽车。 我将图像正确地转换为灰度,并成功地在框架上画了一条线。问题是我得到了这个错误 错误:OpenCV(3.4.2)C:\build\3\u 4\u winpack-bindings-win32-vc14-static\OpenCV\modules\imgproc\src\contours。cpp:199:错误:(-210:不支持的格式或格式组合)[Start]

  • Three.js有一系列导入外部文件的辅助函数,是在three.js之外的,使用前需要额外下载,在https://github.com/mrdoob/three.js/tree/master/examples/js/loaders可以找到。 *.obj是最常用的模型格式,导入*.obj文件需要OBJLoader.js;导入带*.mtl材质的*.obj文件需要MTLLoader.js以及OBJMTL