买了本《OpenCV4 快速入门》(冯振等),看着还不错,一边学一边自己敲,简单的记录下,当然不是单纯的照抄代码啦。

===============================================================================================

lalala

书上有很多错误。

===============================================================================================

代码开头的小工具函数会不断修改优化,所以看最后一篇博客的就行。

===============================================================================================

很显然,这本书是本入门书,缺少一些东西。

这个就不再这个里面写了。单独写一个系列。

===============================================================================================

编译OpenCV

环境配置

初始化Mat、Mat的计算

Mat的访问和修改

读取并显示图片

加载显示视频

加载摄像头

保存图片

保存视频

读写XML和YML文件

颜色模型及其转换

分离通道、合并通道、计算数据类型

单张图像像素的最小值最大值:minMaxLoc( )

单张图像像素平均值和标准差:mean( ) meanStdDev( )

两幅图像间的比较运算,可实现抠图和通道选择:max( ) min( )

两幅图像间的逻辑操作,与、或、非、异或:bitwise_and( ) bitwise_or( ) bitwise_not( ) bitwise_xor( )

单阈值图像二值化:threshold( ) adaptiveThreshold( )

多阈值图像二值化,查找表:LUT( )

图像拼接:hconcat( ) vconcat( )

图像缩放:resize( )

图像翻转:flip( )

图像仿射变换,旋转、平移、缩放:getAffineTransform( ) warpAffine( )

图像透视变换,校正:getPerspectiveTransform( ) warpPerspective( )

图像极坐标变换,圆方转化:warpPolar( )

在图像上绘制几何图形和文字:circle( ) line ellipse( ) ellipse2Poly( ) rectangle( ) fillPoly( ) putText( )

感兴趣区域,截图,深拷贝,浅拷贝:Rect( ) Range( ) "=" Mat( ) copyTo( )

下采样,上采样,高斯金字塔(实现图像模糊)、拉普拉斯金字塔(预测残差):pyrDown( ) pyrUp( )

窗口交互操作,滑动条:createTrackbar( )

窗口交互操作,鼠标响应:setMouseCallback( )

直方图:calcHist( )

归一化:Normalize( )

直方图比较:compareHist( )

直方图均衡化:equalizeHist( )

直方图匹配:累积概率,累积概率误差矩阵,LUT( )

直方图反向投影:calcBackProject( )

图像的模板匹配:matchTemplate( ) minMaxLoc( )

图像卷积:filter2D( )

椒盐噪声:随机数 黑白像素点

高斯噪声:RGN::fill( )

线性滤波-均值滤波:blur( )

线性滤波-方框滤波:boxFilter( ) sqrBoxFilter( )

线性滤波-高斯滤波:GaussianBlur( )

线性滤波-可分离滤波:sepFilter2D( ) getGaussianKernel( )

非线性滤波-中值滤波:medianBlur( )

非线性滤波-双边滤波,人脸美颜:bilateralFilter( )

边缘检测 filter2D( ) convertScaleAbs( )

边缘检测 Sobel( ) convertScaleAbs( )

边缘检测 Scharr( ) convertScaleAbs( )

边缘检测 生成滤波器 getDerivativeKernels( )

边缘检测 Laplacian( ) convertScaleAbs( )

边缘检测 Canny( ) GaussianBlur()

图像像素距离 distanceTransform( ) 

图像连通域 connectedComponents( )、connectedComponentsWithStats( )

图像腐蚀 erode( )

图像膨胀 dilate( )

图像的开运算、闭运算、形态学梯度、顶帽运算、黑帽、击中击不中变换 morphologyEx( )

图像细化 thinning( )

形状检测-直线 HoughLines( )

形状检测-直线 HoughLinesP( )

形状检测-直线 在二维点集中检测直线 HoughLinesPointSet( )

形状检测-直线 拟合直线 fitLine( )

形状检测-圆形 HoughCircles( )

轮廓检测-发现、绘制 findContours( ) drawContours( )

轮廓检测-面积 ContourArea( )

轮廓检测-长度 arcLength( )

轮廓检测-外接矩形 boundingRect( ) minAreaRect( )

轮廓检测-外接 多边形逼近 approxPolyDP( )

轮廓检测-凸包检测 convexhull( )

矩的计算-几何矩、中心矩、中心归一化矩、Hu矩 moments( ) HuMoments( )

轮廓匹配-基于Hu矩 matchShapes( )

点集拟合 最小包围三角形 最小包围圆 minEnclosingTriangle( ) minEnclosingCircle( )

二维码识别 QRcodeDetecotor detect( ) decode( ) detectAndDecode( )

傅里叶变换 getOptimalDFTSize( ) copyMakeBorder( ) dft( ) magnitude( )

傅里叶变换-快速计算卷积 mulSpectrums( )

离散余弦变换 dct( ) idct( )

积分图像-标准求和积分 平方和求和积分 斜率求和积分 integral( )

图像分割-漫水填充法 floodFill( )

图像分割-分水岭法 watershed( )

图像分割-GrubCut法 grabCut( )

图像修复 inpaint( )

角点检测-关键点 drawKeypoints( )

角点检测-Harris角点检测 cornerHarris( )

角点检测-Shi-Tomas角点检测 goodFeatureToTrack( )

角点检测-亚像素级别角点检测 cornerSubPix( )

特征点检测-SURF特征点 SURF::create( ) SURF::detect( ) SURF::compute( )

特征点检测-ORB特征点 ORB::create( ) ORB::detect( ) ORB::compute( )

特征点匹配-暴力匹配 BFMatcher( ) BFMatcher::match( ) drawMatches( )

特征点匹配-FLANN快速最邻近算法 cv::FlannBasedMatcher( ) cv::FlannBasedMatcher::match( )

特征点匹配-RANSAC随机抽样一致算法 cv::findHomography( )

齐次坐标和非齐次坐标转换 convertPointsToHomogeneous( )

单目视觉-标定板角点提取 findChessboardCorners( ) find4QuadCornerSubpix( ) drawChessboardCorners( ) findCirclesGrid( )

单目视觉-单目相机标定 calibrateCamera( )

单目视觉-单目相机校正 initUndistortRectifyMap( ) remap( ) undistort( )

单目视觉-单目投影 projectPoints( )

单目视觉-单目位姿估计 solvePnP( ) solvePnPRansac( ) Rodrigues( )

双目视觉-双目相机标定 stereoCalibrate( )

双目视觉-双目相机校正 stereoRectify( )

视频分析-差值法检测移动物体 absdiff( )

视频分析-均值迁移法目标跟踪 meanShift( ) selectROI( )

视频分析-自适应均值迁移法目标跟踪 CamShift( )

视频分析-稠密光流法目标跟踪-Farneback多项式扩展算法 calcOpticalFlowFarneback( ) carToPolar( )

视频分析-稀疏光流法目标跟踪-基于LK稀疏光流法 calcOpticalFlowPyrLK( )

机器学习-K均值 kmeans( )

机器学习-K近邻(knn)cv::ml::TrainData cv::ml::KNearest及findNearest( ) setDefaultK( ) setIsClassifier( ) train( ) save( )

机器学习-决策树(DTrees)cv::ml::TrainData cv::ml::DTrees及predict( ) setMaxDepth( ) setCVFolds( ) train( ) save( )

机器学习-随机森林(RTrees)cv::ml::TrainData cv::ml::RTrees及predict( ) setTermCriteria( ) train( ) save( )

机器学习-支持向量机(SVM) cv::ml::TrainData cv::ml::SVM及predict( ) setKernel( ) setType( ) setTermCriteria( ) train( ) save( )

深度神经网络-加载模型 cv::dnn::readNet( ) getLayerNames( ) getLayerId( ) getLayer( )

深度神经网络-加载模型 cv::dnn::blobFromIMage( ) setInput( ) forword( )

深度神经网络-风格迁移 cv::dnn::blobFromIMage( ) setInput( ) forword( )

深度神经网络-性别检测 cv::dnn::blobFromIMage( ) setInput( ) forword( )