1. 数据类型
cv::Scalar(val);
cv::Point2i(x0, y0);
cv::Size(width, height);
cv::Rect(x, y, width, height);
cv::Matx;
cv::Vec;
cv::Range();
cv::Ptr<IplImage>;
cv::InputArray;
cv::OutputArray;
cv::Mat(Size, type, Scalar);
cv::Mat::zeros(rows,cols,, type);
cv::Mat::ones;
cv::Mat::eye;
// Mat数据访问
M.at<uchar>(i, j);
// 成员函数
M.reshape;
M.clone;
2. 矩阵操作
3. 绘图和注释
cv::circle();
cv::ellipse();
cv::line();
cv::fillPoly();
cv::rectangle();
cv::polyLines();
cv::putText();
4. 图像、视频与数据文件
// 图像
cv::imread(filename, flags);
cv::imwrite(filename, image);
// 视频
cv::VideoCapture;
cv::VideoCapture(filename);
cv::VideoCapture(int device);
cv::VideoWriter;
5. 跨平台
cv::namedWindow();
cv::imshow(name, image);
cv::waitKey(int delay);
cv::destroyAllWindows(void);
6. 滤波与卷积
cv::copyMakeBorder;
cv::threshold;
6.1. 导数与梯度
6.1.1. 索贝尔导数
cv::Sobel;
6.1.2. 拉普拉斯变换
cv::Laplacian;
6.2. 图像形态学
6.2.1. 膨胀与腐蚀
cv::dilate;
cv::erode;
例程:
cv::Mat dilate_element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(tool_radius * 2, tool_radius * 2));
cv::Mat dilated;
cv::dilate(inner_split, dilated, dilate_element);
cv::Mat diff;
absdiff(outer, dilated, diff);
cv::Mat erode_element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(2, 2));
cv::Mat eroded;
cv::erode(diff, eroded, erode_element);
7. 图形变换
7.1. 拉伸、收缩、扭曲与旋转
// 调整大小
cv::resize;
// 仿射变换
cv::wrapAffine;
// 透视变换
cv::wrapPerspective;
//直角坐标系与极坐标系相互转换
cv::cartToPolar;
cv::polarToCart;
/图像修复/
cv::inpaint;
// 去噪
cv::fastNlMeansDenoising;
// 直方图均衡化
cv::equalizeHist;
8. 图像分析
8.1. 基本变换
// 离散傅里叶变换
cv::dft;
// 离散傅里叶逆变换
cv::idft;
// 离散余弦变换
cv::dct;
// 离散余弦逆变换
cv::idct;
// 积分图
cv::integral;
// 边缘检测
cv::Canny;
8.2. Hough变换
cv::HoughLines;
cv::HoughCircles;
8.3. 距离变换
cv::distanceTransform;
// 浸水填充
cv::floodFill;
8.4. 分割
// 分水岭算法
cv::watershed;
// Grabcuts算法
cv::grabCut;
// Mean-Shift分割算法
cv::pyrMeanShiftFiltering;
9. 直方图与模板
cv::calcHist;
10. 轮廓
10.1. 轮廓查找
// 查找轮廓
cv::findContours;
// 绘制轮廓
cv::drawContours;
10.2. 几何及特性概括
// 计算轮廓长度
cv::arcLength;
// 获得矩形包围框
cv::boundingRect;
// 获得最小矩形框
cv::minAreaRect;
// 最小包围圈
cv::minEnclosingCircle;
// 椭圆边框
cv::fitEllipse;
// 轮廓最佳拟合线
cv::fitLine;
// 轮廓凸包
cv::convexHull;
10.3. 几何学测试
// 监测点是否落在多边形内
cv::pointPolygonTest;
// 测试轮廓是否为凸
cv::isContourConvex;
11. 背景提取
11.1. 场景建模
// 直线迭代器对象
cv::LineIterator::LineIterator;
// 帧间差分
cv::absdiff;
// 平均背景法
cv::
12. 关键点和描述子
12.1. 角点检测
// 角点
cv::goodFeaturesToTrack;
// 亚像素角点
cv::cornerSubPix;
12.2. 关键点
cv::Feature2D;
cv::KeyPointsFilter;
cv::drawKeyPoints;
cv::flann;
13. 跟踪
// 计算稠密光流
cv::calcOpticalFlowFarneback;
cv::Optflow::calcOpticalFlowSF;
cv::meanShift;
cv::CamShift;
// 运动模板
cv::motempl;
// 估计
cv::KalmanFilter;
14. 投影与三维视觉
15. 机器学习
// k均值
cv::kmeans;
// StatModel
cv::ml::StatModel;
cv::ml::TrainData;
cv::ml::TrainData::create;
cv::ml::NormalBayesClassifier;
cv::ml::DTrees;
cv::ml::DTrees::create;
cv::ml::DTrees::predict;
cv::ml::RTrees;
cv::ml::RTrees::create;
// k近邻算法
cv::ml::KNearest;
// 实现人工神经网络和反向传播
cv::ml::ANN_MLP;
// 支持向量机
cv::ml::SVM;
16. 目标检测
cv::CascadeClassifier;
cv::CascadeClassifier::detectMultiScale;
cv::dpm::DPMDetector;
cv::BOWTrainer;