深度相机提取障碍物

深度图像的获取原理

参考网站:

基于深度摄像头的障碍物检测(realsense+opencv)

1、opencv头文件调用

可用#include 包含opencv所有库

opencv 头文件 包含 include 的问题

Opencv库组成以及主要文件作用(版本2.4.9)

  core:   核心功能模块,主要包含以下内容:opencv基本数据结构,动态数据结构,绘图函数,数组操作相关函数,                辅助功能与系统函数和宏,与openGL的互操作;

imgpro: Image和Orocessing两个单词的缩写,图像处理模块,主要包括:线性和非线性的图像滤波,图像的几                  何变换,其他图像转换,直方图相关,结构分析和形状描述,运动分析和图像跟踪,特征检测,目标检测等                内容;

highgui:高层GUI图形用户界面,包含媒体的I/o输入输出,视频捕捉,图像和视屏的解码编码,图形交互界面的接                   口等内容;

2、读取图片像素

image.at(i,j)

3、迭代器

迭代器是一种检查容器内元素并遍历元素的数据类型。如:vectoe

C++迭代器的使用和操作总结

4、vector存放任意数据的动态数据

C++ 中vector的使用方法

5、typedef用法

同时声明指针型的多个对象

声明struct新对象

C/C++ typedef用法详解(真的很详细)

6、copyTo用法

使用copyTo函数可以得到一个复制的矩阵。

A.copyTo(B);

就可以得到和A一毛一样的矩阵B。当然需要事先声明B。并且两者可以互不相关的做各种操作。

opencv中copyTo函数的使用


7、OpenCV—矩阵数据类型转换cv::convertTo

8、矩阵参数类型CV_8UC1

8位,1通道

CV_8UC1,CV_8UC2,CV_8UC3等意思

9、Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));element获得返回值;MORPH_RECT内核形状为矩形;Size(15,15)指定内核尺寸

opencv getStructuringElement函数

10、morhpologyEx进行图像变换

EmguCV Image类中的函数(二)使用MorphologyEx进行更多的变换

//进行开操作
morphologyEx(dep, out, MORPH_OPEN, element);
11、
vector > contours;   //A生成一个point型的二维变量变量contours
vector hierarchy; 
第一句生成一个point型的二维变量变量contours(每一维长度均可变) 第二句是生成一个Vec4i型的一维数组hierarchy

这是openCV里面找边界的程序里面的语句吧。contours被定义成二维浮点型向量,这里面将来会存储找到的边界的(x,y)坐标。vectorhierarchy是定义的层级。这个在找边界findcontours的时候会自动生成,这里只是给它开辟一个空间。将来findContours( src, contours, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0) );就能算出边界的坐标,存在contours里面。

12、RNG随机数生成器

OpenCV学习笔记(十二)——随机数产生器RNG

13、threshold图像二值化

double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int t1414ype)
14、convex Hull

opencv笔记(二十四)——得到轮廓之后找到凸包convex hull

opencv学习(四十一)之寻找凸包convexHull()

void cv::convexHull (   InputArray  points,
                        OutputArray     hull,
                        bool    clockwise = false,
                        bool    returnPoints = true 
)
15、scalar
    typedef struct Scalar  
    {  
        double val[4];  
    }Scalar;  

Scalar是一个由长度为4的数组作为元素构成的结构体,Scalar最多可以存储四个值,没有提供的值默认是0。

OpenCV学习笔记(3)——Scalar数据类型理解

它将各个通道的值构成一个整体,赋给具有相同通道数的矩阵元素。

16、findContours和drawContours

OPENCV轮廓提取findContours和drawContours

void findContours//提取轮廓,用于提取图像的轮廓
(
InputOutputArray image,//输入图像,必须是8位单通道图像,并且应该转化成二值的
OutputArrayOfArrays contours,//检测到的轮廓,每个轮廓被表示成一个point向量
OutputArray hierarchy,//可选的输出向量,包含图像的拓扑信息。其中元素的个数和检测到的轮廓的数量相等
int mode,//说明需要的轮廓类型和希望的返回值方式
int method,//轮廓近似方法
Point offset = Point()
)

void drawContours//绘制轮廓,用于绘制找到的图像轮廓
(
 InputOutputArray image,//要绘制轮廓的图像
 InputArrayOfArrays contours,//所有输入的轮廓,每个轮廓被保存成一个point向量
 int contourIdx,//指定要绘制轮廓的编号,如果是负数,则绘制所有的轮廓
 const Scalar& color,//绘制轮廓所用的颜色
 int thickness = 1, //绘制轮廓的线的粗细,如果是负数,则轮廓内部被填充
 int lineType = 8, /绘制轮廓的线的连通性
 InputArray hierarchy = noArray(),//关于层级的可选参数,只有绘制部分轮廓时才会用到
 int maxLevel = INT_MAX,//绘制轮廓的最高级别,这个参数只有hierarchy有效的时候才有效
                                          //maxLevel=0,绘制与输入轮廓属于同一等级的所有轮廓即输入轮廓和与其相邻的轮廓
                                          //maxLevel=1, 绘制与输入轮廓同一等级的所有轮廓与其子节点。
                                          //maxLevel=2,绘制与输入轮廓同一等级的所有轮廓与其子节点以及子节点的子节点
 Point offset = Point()
)



你可能感兴趣的:(深度相机提取障碍物)