C++ OPenCV函数接口汇总

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;
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值