OpenCV深度depth的理解

OpenCV深度depth的理解

大概的意思是说:

CV_8U是无符号8位/像素-即一个像素可以有0-255的值,这是大多数图像和视频格式的正常范围。

CV_32F是float-像素可以有0-1.0之间的任何值,这对于某些数据集的计算很有用-但必须将其转换为8位才能通过将每个像素乘以255来保存或显示。

CV_32S是每个像素的一个有符号32位整数值-同样有用的是,您正在对像素进行整数运算,但同样需要转换为8位才能保存或显示。因为您需要决定如何转换更大范围的可能值(+/-20亿!)变成0-255

其实在mat的属性中有个depth()这个函数,我以为这个求解的就是图片的深度,但是并不是,所以我们千万不能用这个depth()的值作为图片的 深度来理解,这个depth() 是我们在定义mat的时候CV_Type对应的值

CV_8U   0
CV_8S   1
CV_16U  2
CV_16S  3
CV_32S  4
CV_32F  5
CV_64F  6
CV_USRTYPE1 7

这些值和图片的深度还有一定的关联的,比如:

depth:深度,即每一个像素的位数(bits),在opencv的Mat.depth()中得到的是一个 0 – 6 的数字,分别代表不同的位数:enum { CV_8U=0, CV_8S=1, CV_16U=2, CV_16S=3, CV_32S=4, CV_32F=5, CV_64F=6 }; 可见 0和1都代表8位, 2和3都代表16位,4和5代表32位,6代表64位;

depth:深度,即每一个像素的位数(bits),那么我们创建的时候就可以知道根据类型也就可以知道每个像素的位数,也就是知道了创建mat的深度

图像深度的意义:

图像深度是指存储每个像素所用的位数,也用于量度图像的色彩分辨率.图像深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数.

它决定了彩色图像中可出现的最多颜色数,或灰度图像中的最大灰度等级.比如一幅单色图像,若每个象素有8位,则最大灰度数目为2的8次方,即256.

猜你喜欢

转载自blog.csdn.net/weixin_43763292/article/details/131253114