java opencv bytearray转mat_OpenCV中Mat数据类型及相互转换

  • Post author:
  • Post category:java


3928ea83c1a3447f8af0aa9e6a3240e3.png

前言

很多人不重视Mat的数据类型,其实,数据类型不对往往会导致溢出、截断等各种问题,使得计算结果看起来不对,让人陷入迷茫。这篇文章我们来深入聊聊Mat的数据类型以及他们之间的转换。

Mat有的数据类型

OpenCV的文档中列出来的数据类型一共有30种,如下表对应。

4e3568bb81bd588b34d090c2d5a5d45a.png

但实际上,大于30的,比如CV_8UC5,这种是可以自己定义的。在程序的开头用一句宏来定义即可。

#define CV_8UC4 CV_MAKETYPE(CV_8U,4)
#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))

只要认识到,最关键的数据类型其实只有0~6,其他的,都是从0~6扩展通道而已,至于扩展几维,按照你的实际情况来就好。这里再解释一下,0~6的数据类型对应的数据范围:


无符号8bit整型(最常用