OpenCV Error:Assertion failed (scn ==3 || scn==4) in cv::cvtColor

在遍历文件图片时候依次进行人脸检测,但是每隔一段时间出现一条异常,非常纳闷,程序写的都没有问题,上网查了一下。

我的问题是因为:在传入Mat图像的时候是空的,所以在进行cvtColor的时候没有办法进行。

Why??为什么会是空的呢??

查找人脸库看了一下命名顺序才发现,中间会有一些缺失的数据。如:

少了image_0010.png这幅图像。

所以加一个if(!img.empty())条件就好了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-30 04:37:33

OpenCV Error:Assertion failed (scn ==3 || scn==4) in cv::cvtColor的相关文章

line 352 Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow

OpenCV 使用 createtrackerbar()报错问题 Error Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file c:\build\master_winpack-build-win64-vc15\opencv\modules\highgui\src\window.cpp, line 352 原因 先上图把 这个问题困扰我几个小时,其实是因为多次imshow一张图造

opencv error :assertion faild (src.depth()==dst.depth()&&src.size==dst.size)

在用到opencv中出现 opencv error :assertion faild (src.depth()==dst.depth()&&src.size==dst.size) 找这个bug找了好久,网上有这样几种说法: 1.check这两个图或者矩阵是不是初始化了 2.如果初始化了,初始化的大小是不是一样,即两者有没有相同的长宽 3.两者的depth深度是不是一样,即是不是一个是三通道的,一个是单通道的. 或者一个是单通道32位浮点类型,一个是单通道8位整形类型 还是没解决的话,那么接

两个常见的OpenCV Error

本人在在调试过程中遇到的两个常见的OpenCV Error,跟大家分享一下解决办法: 第一个:OpenCV Error: Assertion failed <dims <=2 && data && <unsigned >i0 < <unsigned>size.p[0] && <unsigned >< i1,后面一大串,还是直接截图吧 经过调试发现发生这种错误的原因在于,你访问构造矩阵时越界了,所以报

(C++) Assertion failed: !&quot;Bad error code&quot;, file VMem.c, line 715

(C++) Assertion failed: !"Bad error code", file VMem.c, line 715 Misc error. Full error message Assertion failed: !"Bad error code", file VMem.c, line 715 View a screenshot of this error message Cause IDE: C++ Builder 6.0 Project type:

OpenCV Error: Insufficient memory问题解析

前言 项目程序运行两个月之久之后突然挂了,出现OpenCV Error: Insufficient memory的错误,在此分析一下该问题. 问题的表现形式: 程序内存使用情况: 问题: OpenCV Error: Insufficient memory (Failed to allocate 262144 bytes) in cv::OutOfMemoryError, file C:\builds\2_4_PackSlave-win64-vc12-shared\opencv\modules\c

View Composer Agent initialization error (16): Failed to activate software license (1026556)

1.       桌面发布过程中偶尔有些桌面池中的桌面提示无法访问代理,查看报错信息如下:View Composer Agent initialization error (16):Failed to activate software license (1026556). KB地址:https://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=1026556 主要意思是Windows 7系统激活的

InnoDB: Error: io_setup() failed with EAGAIN after 5 attempts

在一台server中以各数据库的备份文件为数据文件启动多个MySQL实例供SQL Review使用. 之前执行一直没有问题(最多的时候有23个MySQL实例同一时候执行).后来新配置了一台server,启动其相应的实例时失败. 部分错误日志例如以下: -- 140505 16:05:59 InnoDB: Using Linux native AIO 140505 16:05:59  InnoDB: Warning: io_setup() failed with EAGAIN. Will make

Error:Execution failed for task &#39;:app:compileDebugAidl&#39;. &gt; aidl is missing(Android Studio编译错误)

今天下载了一个1.2.1.1版本的Android Studio,使用VPN更新好SDK之后就新建了一个hello world工程测试一下环境,然后就出现以下错误: Error:Execution failed for task ':app:compileDebugAidl'. > aidl is missing 什么情况?全新安装的环境也有错误?Google发布这个工具时没有测试好吗? 没搞过这个工具,一阵搜索得到以下方案: 1.右键工程->Open Module Settings 2.将Bu

C++读一行到string中与vc的debug assertion failed!问题

将输入的一行读到string中不需要像用数组那样,考虑给多少大小的空间,这可以使得做acm题更加方便. c++98有两个函数可以读一行到string中,如下: istream& getline (istream& is, string& str, char delim); istream& getline (istream& is, string& str); 例子: #include <iostream> #include <string