OpenCV
CvCapture
视频获取结构
typedef struct CvCapture CvCapture;
结构CvCapture 没有公共接口,它只能被用来作为视频获取函数的一个参数。
cvCaptureFromCAM
初始化从摄像头中获取视频
CvCapture* cvCaptureFromCAM( int index );
- index 要使用的摄像头索引。如果只有一个摄像头或者用哪个摄像头也无所谓,那使用参数-1应该便可以。
函数cvCaptureFromCAM
给从摄像头的视频流分配和初始化CvCapture结构。
CvScalar
CvScalar定义可存放1—4个数值的数值,其结构如下。
typedef struct CvScalar
{
double val[4];
}
CvScalar;
------------------------------------------------
CvScalar pt;
如果使用的图像是1通道的,则pt.val[0]中存储数据
如果使用的图像是3通道的,则pt.val[0],pt.val[1],pt.val[2]中存储数据
==============================
CvCreateImage
IplImage* cvCreateImage( CvSize size, int depth, int channels );
depth: 图像元素的位深度
channels:每个元素(像素)通道号.可以是 1, 2, 3 或 4.通道是交叉存取的
CvSize
矩形框大小,以像素为精度
typedef struct CvSize
{
int width;
int height;
}
CvSize;
IplImage
是openCV库中很重要的一个结构体,库中的图像都是保存为这个结构体后再进行操作的。
cvCvtColor
色彩空间转换
void cvCvtColor( const CvArr* src, CvArr* dst, int code );
- src
- 输入的 8-bit , 16-bit 或 32-bit 单倍精度浮点数影像.
- dst
- 输出的 8-bit , 16-bit 或 32-bit 单倍精度浮点数影像.
- code
- 色彩空间转换,通过定义 CV_<src_color_space>2<dst_color_space> 常数
http://artu819.blog.sohu.com/89684052.html
cvEqualizeHist
该函数为开放计算机视觉(OpenCV)库库函数,用来使灰度图象直方图均衡化。
定义:
void cvEqualizeHist( const CvArr* src, CvArr* dst );
参数:
src输入的 8-比特 单信道图像
dst输出的图像与输入图像大小与数据类型相同
http://baike.baidu.com/view/6427715.htm
cvClearMemStorage
cvClearMemStorage(storage);//释放内存块
CvSeq
可动态增长元素序列
typedef struct CvSeq
{
CV_SEQUENCE_FIELDS()
} CvSeq;
结构CvSeq是所有OpenCV动态数据结构的基础。
cvHaarDetectObjects
cvHaarDetectObjects
检测图像中的目标
CvSeq* cvHaarDetectObjects( const CvArr* image, CvHaarClassifierCascade* cascade, CvMemStorage* storage, double scale_factor=1.1,
int min_neighbors=3, int flags=0, CvSize min_size=cvSize(0,0) );
cvGetSeqElem
cvRectangle
Canny
函数 cvCanny 采用 CANNY 算法发现输入图像的边缘而且在输出图像中标识这些边缘。threshold1和threshold2 当中的小
阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割。
这两个分割线意义不算特别理解,但设置不同的值,对边缘的理解不完全一样,比如值越高,可能颜色梯度要更大才算边缘。因此需要自动调整阀值算法(待续)。