Opencv 图像深度+转换深度

1. opencv 图像深度

图像深度是指存储每个像素所用的位数,也用于量度图像的色彩分辨率.图像深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数.它决定了彩色图像中可出现的最多颜色数,或灰度图像中的最大灰度等级.比如一幅单色图像,若每个象素有8位,则最大灰度数目为2的8次方,即256.一幅彩色图像RGB3个分量的象素位数分别为4,4,2,则最大颜色数目为2的4+4+2次方,即1024,就是说像素的深度为10位,每个像素可以是1024种颜色中的一种.

 

opencv 深度显示范围:(也就是说当定义了如下不同深度的时候,像素的灰度值要处于显示范围之中才可以显示出来。否则要进行转换)

     测试double型:0.0--1.0之间                              IPL_DEPTH_64F

      测试float型:0.0--1.0之间                                  IPL_DEPTH_32F

      测试long型:0--65535之间                                IPL_DEPTH_32S        

      测试short int型:-32768--32767之间                 IPL_DEPTH_16S        

      测试unsigned short int型:0--65535之间           IPL_DEPTH_16U

      测试char型:-128--127之间                               IPL_DEPTH_8S          

      测试unsigned char型:0--255之间                     IPL_DEPTH_8U

2. Opencv convertScaleAbs函数

在将RealSense提取的深度图片进行显示时,由于是16位图片,想将图片转化成为8位图形进行显示
Opencv中有一个函数convertScaleAbs可以实现这种功能
C++: void convertScaleAbs(InputArray src, OutputArray dst, double alpha=1, double beta=0)
Parameters:
src: input array
dst: output array
alpha: optional scale factor
beta: optional delta added to the scaled values
the governmental definition for the function is :
On each element of the input array, the function covertScaleAbs performs three operations sequentially: scaling, taking an absolute value, conversion to an unsigned 8-bit type:
这里写图片描述

简而言之就是将一个16位的图转换成8位。

 

你可能感兴趣的:(视觉处理)