深度图像的获取原理
参考网站:
1、opencv头文件调用
可用#include
core: 核心功能模块,主要包含以下内容:opencv基本数据结构,动态数据结构,绘图函数,数组操作相关函数, 辅助功能与系统函数和宏,与openGL的互操作;
imgpro: Image和Orocessing两个单词的缩写,图像处理模块,主要包括:线性和非线性的图像滤波,图像的几 何变换,其他图像转换,直方图相关,结构分析和形状描述,运动分析和图像跟踪,特征检测,目标检测等 内容;
highgui:高层GUI图形用户界面,包含媒体的I/o输入输出,视频捕捉,图像和视屏的解码编码,图形交互界面的接 口等内容;
2、读取图片像素
image.at
3、迭代器
迭代器是一种检查容器内元素并遍历元素的数据类型。如:vectoe
4、vector存放任意数据的动态数据
5、typedef用法
同时声明指针型的多个对象
声明struct新对象
6、copyTo用法
使用copyTo函数可以得到一个复制的矩阵。
A.copyTo(B);
就可以得到和A一毛一样的矩阵B。当然需要事先声明B。并且两者可以互不相关的做各种操作。
7、OpenCV—矩阵数据类型转换cv::convertTo
8、矩阵参数类型CV_8UC1
8位,1通道
//进行开操作
morphologyEx(dep, out, MORPH_OPEN, element);
11、
vector > contours; //A生成一个point型的二维变量变量contours
vector hierarchy;
第一句生成一个point型的二维变量变量contours(每一维长度均可变) 第二句是生成一个Vec4i型的一维数组hierarchy
这是openCV里面找边界的程序里面的语句吧。contours被定义成二维浮点型向量,这里面将来会存储找到的边界的(x,y)坐标。vector
12、RNG随机数生成器
13、threshold图像二值化
double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int t1414ype)
14、convex Hull
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。
16、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()
)