如题:
E/cv::error(): OpenCV(4.1.0) Error: Assertion failed (H1.type() == H2.type() && H1.depth() == CV_32F) in compareHist, file /build/master_pack-android/opencv/modules/imgproc/src/histogram.cpp, line 1936
E/org.opencv.imgproc: imgproc::compareHist_10() caught cv::Exception: OpenCV(4.1.0) /build/master_pack-android/opencv/modules/imgproc/src/histogram.cpp:1936: error: (-215:Assertion failed) H1.type() == H2.type() && H1.depth() == CV_32F in function ‘compareHist’
W/System.err: CvException [org.opencv.core.CvException: cv::Exception: OpenCV(4.1.0) /build/master_pack-android/opencv/modules/imgproc/src/histogram.cpp:1936: error: (-215:Assertion failed) H1.type() == H2.type() && H1.depth() == CV_32F in function ‘compareHist’
W/System.err: ]
W/System.err: at org.opencv.imgproc.Imgproc.compareHist_0(Native Method)
W/System.err: at org.opencv.imgproc.Imgproc.compareHist(Imgproc.java:1020)
W/System.err: at com.vcard.vcardtempsdkv2.MainActivity.onResume(MainActivity.java:567)
W/System.err: at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1456)
W/System.err: at android.app.Activity.performResume(Activity.java:7614)
W/System.err: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4412)
W/System.err: at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4470)
W/System.err: at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
W/System.err: at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
W/System.err: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2199)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:112)
W/System.err: at android.os.Looper.loop(Looper.java:216)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7625)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)

比较两个图片相似度(compareHist)时出现的问题(相信其他函数也会有这样的异常抛出),很自然是因为没有满足其中一个条件就会出错。但容易入坑:
1、解决了h1的depth为CV_32F后还是报错
是因为解决h1的depth时,却把type给改变了,导致了不相等。

2、通过转换函数转换之后,忽略了type

此时需要做的是分别将两个参数的type、depth分别输出,看一下具体的值后转换为相同的即可解决问题。并且都同时转换一下:
mat1.convertTo(mat1, CvType.CV_32F);
mat2.convertTo(mat2, CvType.CV_32F);
Imgproc.compareHist(mat1,mat2,Imgproc.HISTCMP_CORREL);

出现此问题的原因:
1、两张图的位深度(通道不一样)不一样,一张24,另一张32 ,影响的type不一样
2、depth(mat的data数据类型)不一样,图片类型不一样可能导致这个数据类型不一样

如需进一步了解mat的type和depth:OpenCV Mat基础认知感

OpenCV:H1.type() == H2.type() H1.depth() == CV_32F相关推荐

  1. opencv报错:(depth == CV_8U || depth == CV_32F)

    opencv报错:(depth == CV_8U || depth == CV_32F) && type == _templ.type() && _img.dims() ...

  2. 计算机网络【某个单位的网点由4个子网组成,结构如图所示,其中主机H1、H2、H3、H4的IP地址和子网掩码如表所示。 (1)请写出路由器R1到4个子网的路由表。(2)...】

    原文链接: 百度教育 计算机网络简答与综合 - 百度文库 某个单位的网点由4个子网组成,结构如图所示,其中主机H1.H2.H3.H4的IP地址和子网掩码,如表所示. (1)请写出路由器R1到4个子网的 ...

  3. h1、h2、h3标签及strong标签对页面seo的影响

    今天和大家来聊下h1,h2,h3,strong几个标签,在网页中的使用对页面seo的影响,也阐述了个人的一些想法. 首先简要讲下H标签及strong标签的含义:<h1>.<h2> ...

  4. 什么是H标签?H1,H2,H3标签?以及和strong标签使用的方法及重要性

    大家都知道,seo的一个很重要的一点就是要把网站做的条理清晰,让搜索引擎很容易的读明白,这个条理清晰不仅体现在网站的物理路径,url等地 方.在<h1><h2><h3&g ...

  5. html语言h1h2h3,什么是H标签?H1,H2,H3标签使用的方法及重要性

    什么是H标签?H1,H2,H3标签使用的方法及重要性 发表时间:2017-06-02 作者:东方硅谷小编 大家都知道,seo的一个很重要的一点就是要把网站做的条理清晰,让搜索引擎很容易的读明白,这个条 ...

  6. html h1 h2 h3并列,H1、H2、H3标签分别在什么情况下使用?

    在seo的工作中,一个好的页面必须有h1\h2\h3,那么,H1.H2.H3标签分别在什么情况下使用? H1.H2.H3标签分别在什么情况下使用? H1:通常用于一个页面最重要的地方,这个要分不同的场 ...

  7. pythontype函数使用_基础教程:python isinstance与type函数用法

    这两个函数有意义用法差不多,都是查看对象的,但是两者之间也有一定区别,具体内容请看下文~ 两者区别: type()是一个内置函数,可以用来查询变量所指的对象类型 isinstance()是用来判断该变 ...

  8. sklearn随机森林模型:ValueError: Unknown label type: ‘unknown‘

    sklearn随机森林模型:ValueError: Unknown label type: 'unknown' 目录 sklearn随机森林模型:ValueError: Unknown label t ...

  9. python3运行报错:TypeError: Object of type ‘type‘ is not JSON serializable解决方法(详细)

    python3运行报错:TypeError: Object of type 'type' is not JSON serializable解决方法(详细) 参考文章: (1)python3运行报错:T ...

最新文章

  1. [codeforces] 383C Propagating tree(dfs序+线段树)
  2. python使用matplotlib可视化、使用英文单次或者缩写指定使用的颜色、使用16进制的RGB字符串指定颜色、使用RGB或者RGBA数字元组指定颜色
  3. Flask实战2问答平台-发布问答功能完成
  4. 【论文学习】RepVGG: Making VGG-style ConvNets Great Again及网络重参数化的用途及效果分析
  5. mysql程序设计教程_MySQL教程_编程入门教程_牛客网
  6. python生成和导入pyc文件
  7. 邓白氏编码查询_外贸人常用查询工具汇总
  8. 入门机器学习(二十)--编程作业-异常检测和推荐系统(Python实现)
  9. Qt——P13 Q4版本信号槽连接
  10. PHP在接下来的几年内将是主主流的
  11. 云承软件和云溪哪个好_多工序开料机的软件对接及注意事项
  12. linux最大lun空间,Linux上每个SCSI设备的最大LUN数目是多少(by quqi99)
  13. 北斗卫星导航系统的研究及应用
  14. mysql错误:Table XXX is marked as crashed and should be repaire
  15. 条形码类别及如何区分
  16. 青龙->微信机器人 搭建保姆级教程
  17. RPGMakerMV学习笔记(二)—— 制作第一个RPG游戏
  18. linux 压缩文件与解压文件
  19. 菜鸟日记(yzy):opencMS系统-XML内容管理文件开发
  20. 九度OJ—题目1066:字符串排序

热门文章

  1. JVM史上最佳入门指南
  2. js的navigator对象的使用(浏览器信息)
  3. 手把手带你玩转Tensorflow 物体检测 API (1)——运行实例
  4. 面试题:MySQL的innodb和myisam
  5. c语言即时通讯软件源码,即时通讯软件源码-基于c语言即时通讯软件代码实现
  6. python并发编程之semaphore(信号量)_浅谈Python并发编程之进程(守护进程、锁、信号量)...
  7. android 获取phone实例,Android ContentProvider获取手机联系人实例
  8. 的环境下 qt 运行在_Ubuntu16.04环境下运行vins mono(环境配置及编译)之ROS kinetic的安装...
  9. 北京理工大学珠海学院专业计算机类,北京理工大学珠海学院计算机学院网络工程专业...
  10. session mysql java_PHP自定义session处理方法,保存到MySQL数据库中