EmguCV学习笔记 VB.Net和C# 下的OpenCv开发 C# 目录
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
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 颜色空间 17
2.2.2 颜色 18
2.2 Matrix类 18
2.2.1 构造函数 18
2.2.2 获取Matrix元素的值 23
2.2.3 Matrix的拆分 25
2.2.4 Matrix的运算 26
2.2.4.1 加法 26
2.2.4.2 减法 29
2.2.4.3 乘法 32
2.2.4.4 除法 35
2.2.4.5 Not运算 36
2.2.5 Matrix拼接 37
2.2.6 随机矩阵 38
2.2.7 最大值和最小值 39
2.2.8 类型转换 40
2.2.9 获得指定范围的子矩阵 41
2.2.10 其他方法 42
2.3 Mat类 42
2.3.1 构造函数 45
2.3.2 给Mat元素赋值 50
2.3.3 读取Mat元素的值 50
2.3.4 修改Mat元素的值 53
2.3.5 Mat的克隆 54
2.3.6 获得子Mat 56
2.3.7 修改Mat的深度 59
2.3.8 最大值和最小值 60
2.3.9 Mat的运算 61
2.3.9.1 加法 61
2.3.9.2 减法 62
2.3.9.3 乘法 63
2.3.9.4 除法 64
2.3.9.5 And运算 66
2.3.9.6 Or运算 67
2.3.9.7 Xor运算 68
2.3.9.8 Not运算 69
2.3.10 载入并显示图像 70
2.3.11 图像通道的分离与合并 71
2.4 Image类 73
2.4.1 构造函数 74
2.4.2 设置图像颜色 76
2.4.3 图像的副本 79
2.4.4 图像的运算 81
2.4.4.1 加法 81
2.4.4.2 减法 84
2.4.4.3 乘法 86
2.4.4.4 Xor和And运算 87
2.4.5 常用方法 89
2.4.5.1 Convert 89
2.4.5.2 ThresholdBinary 90
2.4.5.2 ThresholdBinaryInv 91
2.4.5.3 Canny 92
2.4.5.4 SmoothBlur 94
2.4.5.5 SmoothGaussian 95
2.5 Mat类、Matrix类和Image类的相互转换 96
2.5.1 Image到Mat的转换 97
2.5.2 Matrix转Mat 99
2.5.3 Image转Matrix 99
2.5.4 Mat转Matrix 101
2.5.5 Image转Bitmap 102
2.5.6 Bitmap转Image 103
2.5.7 Mat转Bitmap 104
2.5.8 Bitmap转Mat 105
2.6 IInputArray和IOutputArray接口 107
2.S 特别示例 107
2.S.1 生成随机值图像 108
2.S.2 图像加密 111
2.S.3 文字纹理 118
2.S.4 图像水印 120
第3章 图形绘制 123
3.1 直线 123
3.2 矩形 125
3.3 圆形 126
3.4 椭圆 127
3.5 多边形 130
3.6 旋转矩形 131
3.7 三角形 133
3.8 文字 134
第4章 图像处理 137
4.1 颜色变换 137
4.2 二值化 139
4.2.1 Threshold 139
4.2.2 AdaptiveThreshold 141
4.2.3 图像通道分离和合并 143
4.2.4 按颜色分离 144
4.3 卷积操作 146
4.3.1 BorderType 146
4.3.2 Blur 147
4.3.3 MedianBlur 149
4.3.4 GaussianBlur 150
4.3.5 BilateralFilter 151
4.3.6 BoxFilter 153
4.3.7 Filter2D 154
4.4 图像形态学 156
4.4.1 GetStructuringElement 157
4.4.2 Erode 157
4.4.3 Dilate 159
4.4.4 MorphologyEx 162
4.5 像素距离和连通区域 167
4.5.1 DistanceTransform 像素距离 167
4.5.2 connectedComponents 图像连通区域 169
4.5.3 connectedComponentsWithStats 172
第5章 图像变换 174
5.1 基本变换 174
5.1.1图像拼接 174
5.1.2 Rotate旋转 177
5.1.3 缩放 178
5.1.4 翻转Flip 181
5.2 仿射变换 182
5.2.1 warpAffine 183
5.2.2 GetAffineTransform 185
5.2.3 GetRotationMatrix2D 189
5.3 透视变换 190
5.3.1 GetPerspectiveTransform 191
5.3.2 WarpPerspective 191
5.3.3 PerspectiveTransform 193
5.4 图像修复 195
第6章 形状操作 198
6.1 边缘检测 198
6.1.1 Soble 199
6.1.2 Laplacian 200
6.1.3 Canny 202
6.2 轮廓处理 203
6.2.1 VectorOfPoint 203
6.2.2 VectorOfVectorOfPoint 204
6.2.3 轮廓查找FindContours 204
6.2.4 轮廓绘制DrawContours 205
6.2.5 轮廓面积 ContourArea 208
6.2.6 轮廓周长 ArcLength 210
6.3 轮廓外接多边形 212
6.3.1 最大外接矩形BoundingRectangle 212
6.3.2 最小外接矩形minAreaRect 212
6.3.3 多边形逼近ApproxPolyDP 215
6.3.4 最小外接圆MinEnclosingCircle 217
6.3.5 最小外接三角形MinEnclosingTriangle 217
6.3.6 拟合椭圆FitEllipse 218
6.3.7 拟合直线FitLine 219
6.3.8 最短距离pointPolygonTest 221
6.4 霍夫变换 228
6.4.1 HoughLines 229
6.4.2 HoughLinesP 232
6.4.3 HoughCircles 234
6.5 凸包和凸缺陷 236
6.5.1 凸包检测ConvexHull 237
6.5.2 凸缺陷 ConvexityDefects 238
6.6 图像的矩 241
6.6.1 矩 Moments 242
6.6.2 Hu矩 244
6.6.3 形状匹配 246
第7章 特征点检测与匹配 253
7.1 角点检测 259
7.1.1 ConvertScaleAbs 259
7.1.2 Normalize 260
7.1.3 CornerHarris 261
7.1.4 CornerSubPix 263
7.2 特征点检测 268
7.2.1 Features2DToolbox类 268
7.2.1.1 DrawKeypoints 268
7.2.1.2 DrawMatches 269
7.2.1.3 VoteForUniqueness 270
7.2.1.4 VoteForSizeAndOrientation 270
7.2.1.5 GetHomographyMatrixFromMatchedFeatures 271
7.2.2 SIFT类 272
7.2.3 BFMatcher类 275
7.2.3.1 Match 275
7.2.3.2 knnMatch 279
7.2.4 Feature2D命名空间 285
第8章 图像分割 287
8.1 漫水填充法 floodFill 287
8.2 分水岭法 watershed 292
8.3 Grabcut法 296
8.4 pyrMeanShiftFiltering 302
第9章 视频操作 303
9.1 VideoCapture类 304
9.1.1 构造函数 304
9.1.2 Get和Set方法 306
9.1.3 Retrieve、Read和Queryframe方法 307
9.1.4 Start、Stop和Pause方法 313
9.1.5 ImageGrabbed事件 313
9.2 VideoWriter类 317
9.2.1 构造函数 317
9.2.2 Fourcc方法 318
9.2.3 Write方法 318
9.3 移动检测类 326
9.3.1 Emgu.CV.BgSegm命名空间 326
9.3.1.1 BackgroundSubtractorMOG 328
9.3.1.2 BackgroundSubtractorCNT 332
9.3.1.3 BackgroundSubtractorGMG 333
9.3.1.4 BackgroundSubtractorGSOC 334
9.3.1.5 BackgroundSubtractorLSBP 334
9.3.2 BackgroundSubtractorMOG2类 335
9.3.3 BackgroundSubtractorKNN 339
9.4 MotionHistory类 341
第10章 人脸识别 345
10.1 人脸检测 CascadeClassifier类 345
10.2 人脸识别 FaceRecgnizer类 351
10.2.1 LBPHFaceRecgnizer类 351
10.2.2 BasicFaceRecognizer 356
10.2.2.1 EigenFaceRecgnizer类 356
10.2.2.2 FisherFaceRecognizer 357
第11章 DNN(Deep Neural Network) 357
11.1 DnnInvoke类 358
11.2 推理流程 358
11.3 DNN其它 362
11.4 图像分类 364
11.5 目标检测 367
11.5.1 Yolo 367
11.5.2 SSD 371
11.6 图像分割 375
11.6.1 语义分割Fcn 375
11.6.2 实例分割 MASK RCNN 379
11.7 风格迁移 384
11.8 人脸检测 387
11.9 姿势识别 OpenPose 393
第12章 其他技术 404
12.1 二维码解析 404
12.2 WeChatQRCode 407
12.3 OCR 410
相关文章:
EmguCV学习笔记 VB.Net和C# 下的OpenCv开发 C# 目录
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…...
探索TensorFlow:深度学习的未来
标题:探索TensorFlow:深度学习的未来 在当今快速发展的人工智能领域,TensorFlow无疑是最耀眼的明珠之一。TensorFlow是由Google Brain团队开发的一个开源机器学习框架,它以其强大的灵活性、易用性和高效的性能,迅速成…...

探索地理空间分析的新世界:Geopandas的魔力
文章目录 探索地理空间分析的新世界:Geopandas的魔力背景:为何选择Geopandas?这个库是什么?如何安装这个库?五个简单的库函数使用方法场景应用:Geopandas在实际工作中的应用常见bug及解决方案总结 探索地理…...

如何为网站申请免费SSL证书?
一、准备阶段 确定证书类型: 对于大多数个人博客和小型企业网站,DV(域名验证)SSL证书已足够使用,因为它仅验证域名所有权,成本较低且验证快速。准备域名: 确保你拥有一个有效的域名,…...

Java项目集成RocketMQ
文章目录 1.调整MQ的配置1.进入bin目录2.关闭broker和namesrv3.查看进程确认关闭4.编辑配置文件broker.conf,配置brokerIP15.开放端口109116.重新启动1.进入bin目录2.启动mqnamesrv和mqbroker1.启动 NameServer 并将输出重定向到 mqnamesrv.log2.**启动 Broker 并将…...
如何将 Bamboo agent 能力迁移到极狐GitLab tag 上?
极狐GitLab 是 GitLab 在中国的发行版,专门面向中国程序员和企业提供企业级一体化 DevOps 平台,用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规,而且所有的操作都是在一个平台上进行,省事省心省钱。可以一键安装极狐GitL…...
正则表达式入门:Python ‘ re ‘ 模块详解
正则表达式(Regular Expression,简称 re)是一种强大而灵活的工具,广泛用于字符串匹配、替换和分割等操作,尤其在处理网页爬虫数据时非常有用。Python 提供了 " re " 模块来支持正则表达式的使用,…...
thinkphp8.0+aliapy(支付宝)pc网站支付
环境:宝塔-centOS8.5,php8.3 第一步:安装alipay v3版本的安装依赖包; composer require alipaysdk/openapi:dev第二步:根据官方文档,把支付相关的类引用进来; <?php declare (strict_types 1);namespace app\p…...

高速信号的眼图、加重、均衡
目录 高速信号的眼图、加重、均衡眼图加重均衡线性均衡器CTLE判决反馈均衡器DFE 高速信号的眼图、加重、均衡 眼图 通常用示波器观察接收信号波形的眼图来分析码间串扰和噪声对系统性能的影响,从而估计系统优劣程度,因而眼图分析是高速互连系统信号完整…...

2024年PMP考前冲刺必背的学习笔记,整理好给你!
项目的四大特点:临时性、独特性、变革驱动性和创造商业价值。 项目管理:将知识、技能、工具与技术应用于项目活动,以满足项目的要求 Pestle:P政治,E经济,S社会,T技术,L法律,E环境 …...
增加服务器带宽可以提高资源加载速度吗?
答案是可以的 ,增加服务器带宽通常能够提高资源加速速度。带宽是服务器与互联网之间传输数据的速率,它决定了在单位时间内可以传输的数据量。以下是增加带宽如何提高资源加速速度的几个方面: 1.更快的数据传输:带宽增加后…...
汽车EDI: NAVISTAR EDI对接
Navistar International Corporation 是一家美国商用车辆制造公司,总部位于伊利诺伊州的Lisle。公司以生产中型和重型卡车、公共汽车、柴油发动机和底盘闻名,其产品广泛应用于运输、建筑、和农业等行业。Navistar 的历史可以追溯到1831年,由国…...

【Word多级标题完整设置】设置各级标题样式将多级列表链接到各级标题样式中
Word多级标题完整设置 一、设置各级标题样式主标题样式设置中英文字体、字形以及字号设置段落设置(缩进、间距和行距) 一级标题样式设置中英文字体、字形以及字号设置段落设置(缩进、间距和行距) 二级标题样式设置中英文字体、字形…...
不同分辨率下vue页面的高度自适应
1. 使用视口单位 .element { height: 100vh; /* 使得元素高度等于视口高度的100% */ /* 可以减去一部分高度以适应页眉或页脚 */ height: calc(100vh - 100px); } 2. 使用百分比(%)高度 .parent { height: 100vh; /* 父元素高度等于视口高度 */…...

“野生钢铁侠 “ 稚晖君一连亮出5 款智元人形机器人,地表最强!
打麻将、拆快递、纽扣穿针,还能做 30KG 重物提拉! 沉寂一年,稚晖君带着他的二代机器人全家桶重磅回归,秀出的各种新技能令人眼前一亮。 智东西 8 月 18 日报道,今日," 野生钢铁侠 " 稚晖君一连亮…...

JSON Web Token (JWT): 理解与应用
JWT(JSON Web Token)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON对象的形式安全地传输信息。JWT通常用于身份验证和授权目的,因为它可以使用JSON对象在各方…...
LeetCode面试题Day12|LC209 长度最小的子数组、LC30 串联所有单词的子串
题目一: 指路: . - 力扣(LeetCode)209 长度最小的子数组 思路与分析: 滑动窗口,目的在于降低算法的时间复杂度,每次只维护一定长度的数组而非原数组的全部元素。那么既然需要长度࿰…...

【开端】JAVA泛型类的使用
一、这是一个类 public class CommonVo<D extends CommonDao> implements Serializable { 我们来探讨一样 CommonVo<D extends CommonDao> 这个尖括号里到底能写啥。 首先这是一个泛型类型D ,D类继承了CommonDao,说明尖括号里只要放入一…...

mp3转换器免费有哪些?6个音频转换器助你一键转换各种音频
音乐如同生活的调味剂,让每一个平凡瞬间都跃动着不凡的旋律。 但有时候,当你想把这些歌曲放到你的设备上时,却发现格式不兼容,无法播放。 别担心!接下来,我们将介绍几款免费mp3转换工具,它们能…...

力扣爆刷第174天之TOP200五连刷136=140(最小k数、字典序、跳跃游戏)
力扣爆刷第174天之TOP200五连刷136140(最小k数、字典序、跳跃游戏) 文章目录 力扣爆刷第174天之TOP200五连刷136140(最小k数、字典序、跳跃游戏)一、LCR 159. 库存管理 III二、450. 删除二叉搜索树中的节点三、440. 字典序的第K小…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...

使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...