图像
灰度图 灰度是描述灰度图像内容的最直接的视觉特征。它指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,故黑白图像也称灰度图像。灰度图像矩阵元素的取值通常为[0,255],因此其数据类型一般为8位无符号整数,这就是人们通常所说的256级灰度。 灰度图:一个像素的灰度可以用8 位整数记录,也就是一个0~255的值。
深度图 当我们要记录的信息更多时,一个字节就不够了。 在rgb-d相机的深度图中,记录了各个像素与相机之间的距离。这个距离通常是以毫米为单位,而rgb-d 相机的量程通常在十几米左右,超过了255。 人们会采用16 位整数(c++ 中的unsigned short)来记录深度图的信息,也就是位于0~65535 的值。换算成米的话,最大可以表示65 米,足够rgb-d 相机使用了。
彩色图 彩色图像的表示则需要通道(channel)的概念。在计算机中,我们用红色、绿色和蓝色这三种颜色的组合来表达任意一种色彩。于是对于每一个像素,就要记录其r、g、b 三个数值,每一个数值就称为一个通道。例如,最常见的彩色图像有三个通道,每个通道都由8 位整数表示。在这种规定下,一个像素占据24 位空间。 通道的数量、顺序都是可以自由定义的。在opencv 的彩色图像中,通道的默认顺序是b、g、r。也就是说,当我们得到一个24 位的像素时,前8 位表示蓝色数值,中间8 位为绿色,最后8 位 为红色。同理,亦可使用r、g、b 的顺序表示一个彩色图。如果还想表达图像的透明度,就使用r、g、b、a 四个通道。
rgb彩色图与灰度图之间的转换 彩色图像转换为灰度图像时,需要计算图像中每个像素有效的亮度值,其计算公式为: y = 0.299r + 0.578g + 0.114b
双目相机通过视差来计算深度。rgbd相机则可以主动测量每个像素的深度。
通过红外结构光(structured light)来测量像素距离的。例子有kinect 1 代、project tango 1 代、intel realsense 等。
通过飞行时间法(time-of-flight,tof)原理测量像素距离的。例子有kinect 2 代和一些现有的tof 传感器等
rgbd相机原理图
深度图的保存
那么如何从rgbd相机提取像素的深度信息呢? 下面是一个简单的小程序,可以显示像素的深度信息.
#include #include #include using namespace std;float depthscale = 1.0f/1000; //尺度因子,表示一个像素对应多少实际中的米int main(int argc, char **argv){ cv::mat depth = cv::imread(img.jpg); depth.convertto(depth,cv_32fc1,depthscale); //这个转换很重要 for (int v = 0; v < depth.rows; v++) { for (int u = 0; u < depth.cols; u++) { unsigned int d = depth.ptr(v)[u]; // 深度值 if (d == 0) continue; // 为0表示没有测量到 else { cout<
img: 图像数据来源,其类型为mat。
注意: 不是所有格式的mat型数据都能被使用保存为图片,目前opencv主要只支持单通道和3通道的图像,并且此时要求其深度为8bit和16bit无符号(即cv_16u),所以其他一些数据类型是不支持的,比如说float型等。如果mat类型数据的深度和通道数不满足上面的要求,则需要使用convertto()函数和cvtcolor()函数来进行转换。
convertto()函数负责转换数据类型不同的mat,即可以将类似float型的mat转换到imwrite()函数能够接受的类型。
而cvtcolor()函数是负责转换不同通道的mat,因为该函数的第4个参数就可以设置目的mat数据的通道数(只是我们一般没有用到它,一般情况下这个函数是用来进行色彩空间转换的)。
另外也可以不用imwrite()函数来存图片数据,可以直接用通用的xml io接口函数将数据存在xml或者yxml中。
具体含义,缩放并转换到另外一种数据类型:
dst:目的矩阵;
type:需要的输出矩阵类型,或者更明确的,是输出矩阵的深度,如果是负值(常用-1)则输出矩阵和输入矩阵类型相同;
scale:比例因子;
shift:将输入数组元素按比例缩放后添加的值;
dst(i)=src(i)xscale+(shift,shift,...)
采用激光武器防止无人机造成威胁
特斯拉线圈隔空点亮灯泡原理
OpenHarmony 4.0 Beta1发布,邀您体验
知道吗?安费诺五大应用方案,就在你兜里……
realme 真我GT配备新一代 3D超薄钢化液冷散热
RGBD相机模型与图片处理
全球平板电脑市场规模增长33%,三星出货量同比增长几乎翻番
城市的智能进化,汇成数字中国的璀璨银河
关于南方电网深圳实训基地视频监控系统的性能分析
三星的故事始于首款照相手机SCH-V200
【硬件】PCB上的死铜:解析和影响
2023年PLC市场基础分析
ios10.2bug再起:iphone6s跳电、掉电更疯狂
一种新的钙钛矿-晶硅叠层太阳能电池开发
软件定义光网络(SDON)解决方案及其关键技术
Nuvoton发布高效CODEC/SLIC产品-N68138
关于数字化伺服系统电流中三种采样方案的对比
便携式应用中DC-DC转换器输出电压的数字调整
对待辐射类测试整改案例
什么是视频展台的照明灯/正/负片转换