版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。
教程VB.net版本请访问:EmguCV学习笔记 VB.Net 目录-CSDN博客
教程C#版本请访问:EmguCV学习笔记 C# 目录-CSDN博客
笔者的博客网址:https://blog.csdn.net/uruseibest
教程配套文件及相关说明以及如何获得pdf教程和代码,请移步:EmguCV学习笔记
学习VB.Net知识,请移步: vb.net 教程 目录_vb中如何用datagridview-CSDN博客
学习C#知识,请移步:C# 教程 目录_c#教程目录-CSDN博客
目录 1
前言 7
参考文献 7
第1章 EmguCV 8
1.1 EmguCV 8
1.1.1 OpenCV 8
1.1.2 EmguCV简介 8
1.2 EmguCV安装 8
第2章 图像操作 16
2.1 颜色空间和颜色 16
2.1.1 颜色空间 16
2.2.2 颜色 18
2.2 Matrix类 18
2.2.1 构造函数 18
2.2.2 获取Matrix元素的值 22
2.2.3 Matrix的拆分 24
2.2.4 Matrix的运算 25
2.2.4.1 加法 25
2.2.4.2 减法 28
2.2.4.3 乘法 31
2.2.4.4 除法 34
2.2.4.5 Not运算 35
2.2.5 Matrix拼接 35
2.2.6 随机矩阵 37
2.2.7 最大值和最小值 38
2.2.8 类型转换 39
2.2.9 获得指定范围的子矩阵 40
2.2.10 其他方法 41
2.3 Mat类 41
2.3.1 构造函数 44
2.3.2 给Mat元素赋值 48
2.3.3 读取Mat元素的值 49
2.3.4 修改Mat元素的值 52
2.3.5 Mat的克隆 53
2.3.6 获得子Mat 55
2.3.7 修改Mat的深度 57
2.3.8 最大值和最小值 58
2.3.9 Mat的运算 59
2.3.9.1 加法 59
2.3.9.2 减法 60
2.3.9.3 乘法 61
2.3.9.4 除法 62
2.3.9.5 And运算 64
2.3.9.6 Or运算 65
2.3.9.7 Xor运算 66
2.3.9.8 Not运算 67
2.3.10 载入并显示图像 67
2.3.11 图像通道的分离与合并 68
2.4 Image类 71
2.4.1 构造函数 72
2.4.2 设置图像颜色 73
2.4.3 图像的副本 76
2.4.4 图像的运算 78
2.4.4.1 加法 78
2.4.4.2 减法 81
2.4.4.3 乘法 82
2.4.4.4 Xor和And运算 83
2.4.5 常用方法 85
2.4.5.1 Convert 85
2.4.5.2 ThresholdBinary 86
2.4.5.2 ThresholdBinaryInv 87
2.4.5.3 Canny 88
2.4.5.4 SmoothBlur 89
2.4.5.5 SmoothGaussian 90
2.5 Mat类、Matrix类和Image类的相互转换 91
2.5.1 Image到Mat的转换 92
2.5.2 Matrix转Mat 94
2.5.3 Image转Matrix 94
2.5.4 Mat转Matrix 96
2.5.5 Image转Bitmap 97
2.5.6 Bitmap转Image 98
2.5.7 Mat转Bitmap 98
2.5.8 Bitmap转Mat 99
2.6 IInputArray和IOutputArray接口 101
2.S 特别示例 101
2.S.1 生成随机值图像 102
2.S.2 图像加密 105
2.S.3 文字纹理 111
2.S.4 图像水印 114
第3章 图形绘制 116
3.1 直线 117
3.2 矩形 118
3.3 圆形 119
3.4 椭圆 120
3.5 多边形 122
3.6 旋转矩形 124
3.7 三角形 125
3.8 文字 127
第4章 图像处理 129
4.1 颜色变换 129
4.2 二值化 131
4.2.1 Threshold 131
4.2.2 AdaptiveThreshold 133
4.2.3 图像通道分离和合并 134
4.2.4 按颜色分离 136
4.3 卷积操作 137
4.3.1 BorderType 138
4.3.2 Blur 138
4.3.3 MedianBlur 140
4.3.4 GaussianBlur 141
4.3.5 BilateralFilter 142
4.3.6 BoxFilter 143
4.3.7 Filter2D 145
4.4 图像形态学 146
4.4.1 GetStructuringElement 147
4.4.2 Erode 148
4.4.3 Dilate 150
4.4.4 MorphologyEx 152
4.5 像素距离和连通区域 156
4.5.1 DistanceTransform 像素距离 156
4.5.2 connectedComponents 图像连通区域 158
4.5.3 connectedComponentsWithStats 161
第5章 图像变换 163
5.1 基本变换 163
5.1.1图像拼接 163
5.1.2 Rotate旋转 166
5.1.3 缩放 167
5.1.4 翻转Flip 169
5.2 仿射变换 170
5.2.1 warpAffine 171
5.2.2 GetAffineTransform 173
5.2.3 GetRotationMatrix2D 176
5.3 透视变换 177
5.3.1 GetPerspectiveTransform 178
5.3.2 WarpPerspective 178
5.3.3 PerspectiveTransform 180
5.4 图像修复 182
第6章 形状操作 185
6.1 边缘检测 185
6.1.1 Soble 185
6.1.2 Laplacian 187
6.1.3 Canny 188
6.2 轮廓处理 189
6.2.1 VectorOfPoint 189
6.2.2 VectorOfVectorOfPoint 190
6.2.3 轮廓查找FindContours 190
6.2.4 轮廓绘制DrawContours 191
6.2.5 轮廓面积 ContourArea 194
6.2.6 轮廓周长 ArcLength 196
6.3 轮廓外接多边形 197
6.3.1 最大外接矩形BoundingRectangle 197
6.3.2 最小外接矩形minAreaRect 198
6.3.3 多边形逼近ApproxPolyDP 201
6.3.4 最小外接圆MinEnclosingCircle 203
6.3.5 最小外接三角形MinEnclosingTriangle 203
6.3.6 拟合椭圆FitEllipse 203
6.3.7 拟合直线FitLine 205
6.3.8 最短距离pointPolygonTest 207
6.4 霍夫变换 214
6.4.1 HoughLines 214
6.4.2 HoughLinesP 217
6.4.3 HoughCircles 219
6.5 凸包和凸缺陷 221
6.5.1 凸包检测ConvexHull 221
6.5.2 凸缺陷 ConvexityDefects 223
6.6 图像的矩 226
6.6.1 矩 Moments 227
6.6.2 Hu矩 228
6.6.3 形状匹配 230
6.S 特别示例
第7章 特征点检测与匹配 237
7.1 角点检测 243
7.1.1 ConvertScaleAbs 243
7.1.2 Normalize 244
7.1.3 CornerHarris 245
7.1.4 CornerSubPix 247
7.2 特征点检测 252
7.2.1 Features2DToolbox类 252
7.2.1.1 DrawKeypoints 252
7.2.1.2 DrawMatches 253
7.2.1.3 VoteForUniqueness 253
7.2.1.4 VoteForSizeAndOrientation 254
7.2.1.5 GetHomographyMatrixFromMatchedFeatures 254
7.2.2 SIFT类 255
7.2.3 BFMatcher类 258
7.2.3.1 Match 258
7.2.3.2 knnMatch 261
7.2.4 Feature2D命名空间 266
第8章 图像分割 268
8.1 漫水填充法 floodFill 268
8.2 分水岭法 watershed 273
8.3 Grabcut法 277
8.4 pyrMeanShiftFiltering 283
第9章 视频操作 284
9.1 VideoCapture类 284
9.1.1 构造函数 285
9.1.2 Get和Set方法 286
9.1.3 Retrieve、Read和Queryframe方法 288
9.1.4 Start、Stop和Pause方法 293
9.1.5 ImageGrabbed事件 294
9.2 VideoWriter类 297
9.2.1 构造函数 298
9.2.2 Fourcc方法 298
9.2.3 Write方法 298
9.3 移动检测类 306
9.3.1 Emgu.CV.BgSegm命名空间 306
9.3.1.1 BackgroundSubtractorMOG 308
9.3.1.2 BackgroundSubtractorCNT 312
9.3.1.3 BackgroundSubtractorGMG 312
9.3.1.4 BackgroundSubtractorGSOC 313
9.3.1.5 BackgroundSubtractorLSBP 314
9.3.2 BackgroundSubtractorMOG2类 315
9.3.3 BackgroundSubtractorKNN 318
9.4 MotionHistory类 320
第10章 人脸识别 324
10.1 人脸检测 CascadeClassifier类 324
10.2 人脸识别 FaceRecgnizer类 329
10.2.1 LBPHFaceRecgnizer类 329
10.2.2 BasicFaceRecognizer 334
10.2.2.1 EigenFaceRecgnizer类 335
10.2.2.2 FisherFaceRecognizer 335
第11章 DNN(Deep Neural Network) 335
11.1 DnnInvoke类 336
11.2 推理流程 337
11.3 DNN其它 340
11.4 图像分类 342
11.5 目标检测 344
11.5.1 Yolo 345
11.5.2 SSD 349
11.6 图像分割 352
11.6.1 语义分割Fcn 352
11.6.2 实例分割 MASK RCNN 357
11.7 风格迁移 361
11.8 人脸检测 364
11.9 姿势识别 OpenPose 370
第12章 其他技术 380
12.1 二维码解析 380
12.2 WeChatQRCode 383
12.3 OCR 385