Mrs.Gril
热爱学习从我做起
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
emgucv4学习26----ResNet图像分类+vs2019
前面我们讲述了目标检测在emgucv上的应用,但是忘了介绍图像分类了,下面我们介绍了如何在emgucv上部署图像分类。之前也在TensorRT上部署了图像了分类感兴趣的小伙伴可以去看看。TensorRT+图像分类:采用ResNet18预训练权重图像分类---部署_zhangdaoliang1的博客-CSDN博客上一篇我们写到了自己手动搭建ResNet18网络进行了图像分类训练,对猫狗进行分类,现在我们是用TensorRT API进行部署。目录1、ResNet18介绍2、TensorRT2.1 权重获原创 2022-02-18 10:49:58 · 459 阅读 · 0 评论 -
emgucv4学习25----MaskRcnn分割+vs2019
前面我们介绍了MaskRcnn算法以及在emgucv上的实现,但只是作为目标检测使用,但实际上MaskRcnn不仅仅能作为目标检测来使用,还可以作为分割,接下来我们就看看如何实现检测加分割。小伙伴可以看看我之前的博客对于Maskrcnn在目标检测上的使用。emgucv4学习24----emgucv4+MaskRcnn目标检测+vs2019_zhangdaoliang1的博客-CSDN博客之前在emgucv上实现了yolov3,yolov4,ssd,openpose等模型得加载推理,接下来实现maskrc原创 2022-01-10 09:33:49 · 487 阅读 · 2 评论 -
emgucv4学习24----emgucv4+MaskRcnn目标检测+vs2019
之前在emgucv上实现了yolov3,yolov4,ssd,openpose等模型得加载推理,接下来实现maskrcnn得在emgucv上的实现。1、模型下载github:matterport/Mask_RCNN: Mask R-CNN for object detection and instance segmentation on Keras and TensorFlow (github.com)https://github.com/matterport/Mask_RCNN点...原创 2021-11-21 15:32:42 · 2425 阅读 · 0 评论 -
emgucv4学习23----emgucv4+HandLandMark识别+vs2019
之前已经在emgucv上实现了yolov3、yolov4、ssd等目标检测算法,现在玩玩openpose在emgucv上的实现,感觉挺有意思的。人体姿态识别可以看看我之前的博客:emgucv4学习22----emgucv4+openpose人体姿态识别+vs2019_zhangdaoliang1的博客-CSDN博客之前已经在emgucv上实现了yolov3、yolov4、ssd等目标检测算法,现在玩玩openpose在emgucv上的实现,感觉挺有意思的。https://blog.c...原创 2021-11-19 13:39:38 · 2475 阅读 · 0 评论 -
emgucv4学习22----emgucv4+openpose人体姿态识别+vs2019
之前已经在emgucv上实现了yolov3、yolov4、ssd等目标检测算法,现在玩玩openpose在emgucv上的实现,感觉挺有意思的。原创 2021-11-19 09:25:55 · 2583 阅读 · 0 评论 -
emgucv4学习21---emgucv+ssd目标检测+vs2019
之前也写过yolov3、yolov4部署在C#上,具体的可以参考下面的博客。可能很多人感觉为啥要用emgucv进行部署呢,我也可以用Opencv、openvino部署,这些也是可以的,甚至可以导出dll给C#调用,总之部署有很多方法。在C#上部署可以直接更改,有时候dll也会报一些不知名的错误。在C#上使用视觉库可以直接写算法,当然也是种学习吧。emgucv4学习19---emgucv+yolov3目标检测+vs2019_zhangdaoliang1的博客-CSDN博客前面学习了很多图像处理得基本知原创 2021-11-09 14:44:46 · 2393 阅读 · 0 评论 -
opencv-python图像处理3---工业用表计数识别3
做这个表盘识数的时候更多的是来自之前一家公司,他们想做表盘读数,当时也就顺便做了一下,就当自己学习了,后面发现在群里也有小伙伴有这个需求,就想到好好做下,也许后面自己也会遇到这样的需求,就当是自己项目积累了。之前也用另外一种方法做了下,感觉误差很大,不是很智能。所以准备换一种方法在做下。先上图:1、思路寻找圆心---->模板匹配------>寻找起始点------>计算刻度值------->得到结果2、代码实现1、圆检测..原创 2021-11-05 21:11:20 · 2347 阅读 · 0 评论 -
emgucv4学习19---emgucv+yolov3目标检测+vs2019
前面学习了很多图像处理得基本知识,比如图像类型得转换、角点检测、轮廓分析等诸多操作,其实后面还有很多东西还没讲到,比如特征匹配、OCR识别等等,后面会一一得进行介绍,现在给大家介绍一下基于emgucv得深度学习检测与部署,对于C++得大家想必也很熟悉了。目前部署推理得框架较多,如opencv、tensorrt、openvino、onnxruntime、darknet,paddlepaddle、libtorch 用到的最多的应该是trt和openvino,接下来进行一一部署。目录1、yolov3.原创 2021-10-20 14:58:02 · 692 阅读 · 0 评论 -
emgucv4学习20---emgucv+yolov4目标检测+vs2019
前面我们学习了emgucv+yolov3目标检测,现在开始学习emgucv+yolov4的相关学习。先介绍下emgucv.Emgu CV 是.NET 平台下对 OpenCV 图像处理库的封装。也就是 OpenCV 的.NET 版。它运行在.NET 兼容的编程语言下调用 OpenCV 的函数,如 C#、VB、 VC++等。同时这个封装库可以在 Mono 下编译和在 Linux / Mac OS X 上运行。 Emgu Cv 的优势在于.net 非常完美的界面,给用户操作带来非常直观的感觉。 Emgu原创 2021-10-20 15:07:12 · 1106 阅读 · 0 评论 -
emgucv4图像处理1----表盘计数自动读取+vs2019+C#
做这个表盘识数的时候更多的是来自之前一家公司,他们想做表盘读数,当时也就顺便做了一下,就当自己学习了,后面发现在群里也有小伙伴有这个需求,就想到好好做下,也许后面自己也会遇到这样的需求,就当是自己项目积累了。其实表盘的格式有很多,比如像钟表那样360°都有克数的,也有只有大部分是有刻数的,(这些计表应该有专有的名字)本博客识别的是像钟表那样360°都有克数的那种表计,不同类型的表,算法不一样(基于传统图像算法)1、思路分析图像可知表盘大多是圆型,很容易想到使用圆检测算..原创 2021-11-02 12:28:49 · 534 阅读 · 0 评论 -
opencv-python图像处理2---工业用表计数识别2
做这个表盘识数的时候更多的是来自之前一家公司,他们想做表盘读数,当时也就顺便做了一下,就当自己学习了,后面发现在群里也有小伙伴有这个需求,就想到好好做下,也许后面自己也会遇到这样的需求,就当是自己项目积累了。目录1、思路1、圆检测:2、极坐标转换:3、最后结果:2、代码实现3、思考前面也做过一个计表读数识别opencv-python图像处理1----表盘计数自动读取+vs2019+python_zhangdaoliang1的博客-CSDN博客做这个表盘识数的时候更多的是.原创 2021-11-03 10:34:37 · 575 阅读 · 0 评论 -
opencv-python图像处理1----表盘计数自动读取+vs2019+python
做这个表盘识数的时候更多的是来自之前一家公司,他们想做表盘读数,当时也就顺便做了一下,就当自己学习了,后面发现在群里也有小伙伴有这个需求,就想到好好做下,也许后面自己也会遇到这样的需求,就当是自己项目积累了。前面做过基于emgucv4+vs2019+C#做的表盘计数识别,有兴趣的童鞋可以看看。emgucv4图像处理1----表盘计数自动读取+vs2019+C#_zhangdaoliang1的博客-CSDN博客做这个表盘识数的时候更多的是来自之前一家公司,他们想做表盘读数,当时也就顺便做了一下,就当自原创 2021-11-02 13:48:59 · 879 阅读 · 0 评论 -
emgucv4学习1----安装与配置
Emgu CV 是.NET 平台下对 OpenCV 图像处理库的封装。也就是 OpenCV 的.NET 版。它运行在.NET 兼容的编程语言下调用 OpenCV 的函数,如 C#、VB、 VC++等。同时这个封装库可以在 Mono 下编译和在 Linux / Mac OS X 上运行。 Emgu Cv 的优势在于.net 非常完美的界面,给用户操作带来非常直观的感觉。 Emgu Cv 每个版本都有修改一部分函数,在兼容旧版本下做的不是很好。在国内并不流行 Emgu Cv,因此关于 Emgu C...原创 2021-10-09 10:11:02 · 943 阅读 · 0 评论 -
emgucv4学习2---图像类型以及之间得转换
前面学到了emgucv得安装与配置,接下来我们先学习下emgucv里面图像得类型,在图像处理中存在各种各样的数据类型,当我们不熟悉如何把一种类型转换 成另外一种类型,这对于编程者带来非常多的困扰。接下来主要分析 Emgu Cv 常用到的数据类型。常用容器:Bitmap:Bitmap 位图文件,是 Windows 标准格式,也是.Net 主要的图像存储格式。 Bitmap 类以 System.Drawing 为命名空间,继承抽象类 Image,同时里面...原创 2021-10-09 13:19:09 · 702 阅读 · 0 评论 -
emgucv4学习3---图像基本操作
前面学习了emgucv得安装以及图像类型转换得学习,接下来开始图像基本操作得学习。1、读取图片;Image<Bgr, byte> image = new Image<Bgr, byte>("G:\\Emgucv_Project\\image\\dog.jpg");pictureBox1.Image = image.ToBitmap();也可以使用openFileDialog来选择打开得图像,代码如下:OpenFileDialog openFileDial原创 2021-10-09 16:46:26 · 795 阅读 · 0 评论 -
emgucv4学习4-----图像像素遍历
1、图像在内存中得存储方式:图像矩阵的大小取决于所用的颜色模型(或者说通道数),灰度图矩阵如下:多通道图像,如RGB颜色模型的矩阵如下:Image<>类型得介绍:前面介绍了各个类型得转换,现在看下Image<>类型得图像。这是Image<>类型得TColor类型和TDepth类型得相关参数,Image<>图像创建以及像素值获取:三通道图像像素获取:Image<Bgr, byte> image =原创 2021-10-11 14:28:49 · 446 阅读 · 0 评论 -
emgucv4学习5---图像基本运算
图像在计算机中就是一个普通的数值矩阵存在的,所以也就能够相应的进行各种运算,这些运算构成了图像处理的基本操作。图像加法可以混合两幅图像进行图像融合,比如在处理照片的贴图;图像减法可以用来去掉运动图像的背景,来进行目标定位追踪。主要介绍图像的算术运算。代数运算算术运算包括加、减、乘、除和位运算,这些运算操作的特点是提供两个输入参数,得到一个输出结果。有时候还可以运算操作的权重系数,或者指定掩码。1、加法运算.Add Image<Bgr, byte> im原创 2021-10-11 15:39:15 · 394 阅读 · 0 评论 -
emgucv4学习6---图像通道分离与合并
目录1、图像通道分离2、图像通道合并3、图像白平衡图像以单通道或者多通道组成,gray 只有一个通道。Bgra 由四个通道组 成的彩色图像。接下来讲解图像的通道分离于合成。 EmguCv 中可以采用 CvInvoke 类中的 Split()对通道进行分离.1、图像通道分离.Splitsplit主要是将图像通道进行分离,三通道图像分离出B、G、R三个通道,一般用vectorofMat来承载分离出来的通道图像。相关代码: Mat img = new M原创 2021-10-11 17:30:57 · 670 阅读 · 0 评论 -
emgucv4学习7---图像几何变换
在图像处理中常常会用到图像的尺寸变换,将较大分辨率的图像通过插 值,改变图像的分辨率的同时保持原有图像的基本信息。包含相同内容的两幅图像可能由于成像角度、透视关系乃至镜头自身原因所造成的几何失真而呈现出截然不同的外观,这就给观测者或是图像识别程序带来了困扰。通过适当的几何变换可以最大程度地消除这些几何失真所产生的负面影响,有利于我们在后续的处理和识别工作中将注意力集中子图像内容本身,更确切地说是图像中的对象,而不是该对象的角度和位置等。因此, 几何变换常常作为其他图像处理应用的预处理步骤, 是图原创 2021-10-11 20:42:07 · 275 阅读 · 0 评论 -
emgucv4学习8---图像阈值处理
阈值处理就是我们通常所说的二值化,阈值处理在图像处理中是非常常见的。图像阈值分割是一种广泛应用的分割技术,利用图像中要提取的目标区域与其 背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景 区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区 域还是背景区域,从而产生相应的二值图像。适用于目标与背景灰度有较强对比的 情况,呈现出明显的黑白效果。 在数字图像处理中,二值图像占有非常重要的地位。图像的二值化有利于图像 的进一步处理,使图像变得简单,而且数据量减小原创 2021-10-12 19:08:51 · 442 阅读 · 0 评论 -
emgucv4学习9---图像滤波
图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪 声(包括高斯噪声、椒盐、噪声、随机噪声等)进行抑制,是图像预 处理中不可缺少的操作,其处理效果的好坏将直接影响到到后续图 像处理和分析的有效性和可靠性。 对不同的噪声的抑制,需要使用不同的滤波进行处理,这边主要 介绍几种滤波方法1、中值滤波中值滤波法是一种非线性平滑技术。它是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围...原创 2021-10-12 20:08:27 · 302 阅读 · 0 评论 -
emgucv4学习10---图像形态学操作
形态学一般指生物学中研究动物和植物结构的一个分支。用数学形态学(也称图像代数)表示以形态为基础对图像进行分析的数学工具。基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。形态学图像处理的数学基础和所用语言是集合论。形态学图像处理的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。 形态学图像处理的基本运算有:膨胀、腐蚀、开操作和闭操作,击中与击不中变换,TOP-HAT变换,黑帽变换等 形态学的应用:消除噪声...原创 2021-10-13 08:08:57 · 252 阅读 · 0 评论 -
emgucv4学习11---图像边缘检测
图像边缘主要是描述了图像的一个结构形状,包含图像的大量信息,也 是图像识别中重要的图像特征之一。从本质上说,图像边缘是图像局部特性 不连续的反映,它标志着一个区域的终结和另一个区域的开始。它存在目标 与背景,目标与目标,因此它是图分割所依赖的重要特性,也是纹理特征的 重要信息源和形状特征的基础,图像的纹理特性的提取依赖于图像的分割。 人对物体的识别很大程度上也是依赖于图像的边缘。边缘蕴含了丰富的内在 信息,因此对图像边缘的提取是图像中常用到的方法。1、图像边缘检测1、sobel s...原创 2021-10-14 14:49:32 · 526 阅读 · 0 评论 -
emgucv4学习12---霍夫检测
霍夫变换(Hough Transform)是图像处理中从图像中识别几何形状的基 本方法之一,应用很广泛,也有很多改进算法。主要用来从图像中分离出具 有某种相同特征的几何形状(如,直线(线段),圆等)。最基本的霍夫变换 是从黑白图像中检测直线(线段)。霍夫变换于 1962 年由 PaulHough 首次提 出,最初的霍夫变换是设计用来检测直线和曲线的。起初的方法要求知道物 体边界的解析方程,但不需要有关区域位置的先验知识。这种方法的一个突 出优点是分割结果的 Robustness,即对数据的不...原创 2021-10-20 09:38:41 · 581 阅读 · 0 评论 -
emgucv4学习13---图像变换
在图像处理中常常会用到图像的尺寸变换,将较大分辨率的图像通过插 值,改变图像的分辨率的同时保持原有图像的基本信息。接下来介绍几种常见得图像变换操作。1、图像金字塔图像金字塔被广泛用于各种视觉应用中。图像金字塔是一个图像集合, 集合中所有的图像都源于同一个原始图像,而且是通过对原始图像连续降采 样获得,直到达到某个中止条件才停止降采样。存在两种图像金字塔分别为: 高斯金字塔用来向下降采样图像,而拉普拉斯金字塔则用来从金字塔低层图 像中向上采样重建一个图像。1、PyrDown---图...原创 2021-10-20 10:03:41 · 227 阅读 · 0 评论 -
emgucv4学习14---轮廓特征分析
emgucv4学习11---图像边缘检测_zhangdaoliang1的博客-CSDN博客图像边缘主要是描述了图像的一个结构形状,包含图像的大量信息,也 是图像识别中重要的图像特征之一。从本质上说,图像边缘是图像局部特性 不连续的反映,它标志着一个区域的终结和另一个区域的开始。它存在目标 与背景,目标与目标,因此它是图分割所依赖的重要特性,也是纹理特征的 重要信息源和形状特征的基础,图像的纹理特性的提取依赖于图像的分割。 人对物体的识别很大程度上也是依赖于图像的边缘。边缘蕴含了丰富的内在 信...原创 2021-10-20 11:17:59 · 531 阅读 · 0 评论 -
emgucv4学习15---分水岭算法
任何一副灰度图像都可以被看成拓扑平面,灰度值高的区域可以被看成是山峰,灰度值低的区域可以被看成是山谷。我们向每一个山谷中灌不同颜色的水。随着水的位的升高,不同山谷的水就会相遇汇合,为了防止不同山谷的水汇合,我们需要在水汇合的地方构建起堤坝。不停的灌水,不停的构建堤坝直到所有的山峰都被水淹没,我们构建好的堤坝就是对图像的分割。这就是分水岭算法的背后原理。 OpenFileDialog ofd = new OpenFileDialog(); ...原创 2021-10-20 13:44:25 · 305 阅读 · 0 评论 -
emgucv4学习16---GrabCut算法
EmguCV中的GrabCut算法是Graphcut算法的改进, Graphcut是一种直接基于图割算法的图像分割技术, 仅仅需要确认前景和背景输入, 该算法就可以完成前景和背景的最优分割, 算法依据《“GrabCut” - Interactive Foreground Extraction using Iterated Graph Cuts》这篇文章来实现的。该算法利用了图像中的纹理(颜色)信息和边界(反差)信息, 只要少量的用户交互操作即可得到比较好的分割结果, 和分水岭算法比较相似, ...原创 2021-10-20 13:53:07 · 328 阅读 · 0 评论 -
emgucv4学习17---距离变换
距离变换于1966年被学者首次提出,目前已被广泛应用于图像分析、计算机视觉、模式识别等领域,人们利用它来实现目标细化、骨架提取、形状插值及匹配、粘连物体的分离等。距离变换是针对二值图像的一种变换。在二维空间中,一幅二值图像可以认为仅仅包含目标和背景两种像素,目标的像素值为1,背景的像素值为0;距离变换的结果不是另一幅二值图像,而是一幅灰度级图像,即距离图像,图像中每个像素的灰度值为该像素与距其最近的背景像素间的距离。 现有的距离变换算法主要采用两类距离测度:非欧式距离和欧式距离。前者常用的有城...原创 2021-10-20 14:02:40 · 344 阅读 · 0 评论 -
emgucv4学习18---角点检测
目前的角点检测算法可归纳为 3 类:基于灰度图像的角点检测、基于二 值图像的角点检测、基于轮廓曲线的角点检测。角点是图像很重要的特征, 对图像图形的理解和分析有很重要的作用。其中基于灰度图像的角点检测又 可分为基于梯度、基于模板和基于模板梯度组合 3 类方法,其中基于模板的 方法主要考虑像素领域点的灰度变化,即图像亮度的变化,将与邻点亮度对 比足够大的点定义为角点。常见的基于模板的角点检测算法有 Kitchen-Rosenfeld 角点检测算法,Harris 角点检测算法、KLT 角点检测算...原创 2021-10-20 14:27:09 · 512 阅读 · 0 评论 -
emgucv4图像处理2----表面胶水痕迹检测+vs2019+C#+emgucv4
这个案例是来自Halcon学习社区里面的案例,之前看着就也给他做了,其中也参考了别人的相关代码,学习下别人的思路,多看别人思路也能有利于自己的成长。目录1、检测思路2、代码实现待检测的图像:1、检测思路对于图像来说可以看到整体是那种条纹状图像,对于这样我们可以考虑滤波算法在进行后处理整体思路:1、灰度化;2、均值滤波;3、灰度与均值滤波相减;4、二值化;5、小区域消除;6、形态学操作;7、轮廓提取2、代码实现1、均值滤波:2、相减3、.原创 2021-11-02 16:14:55 · 810 阅读 · 0 评论 -
emgucv4图像处理3----金属圆环缺口检测+vs2019+C#+emgucv4
之前看到一个比较有意思的案例,就是一个金属圆环对它进行检测,发现别人的检测结果还是很好的,而别人主要用的是Halcon去做的,所以想着使用C#+emgucv进行实现一下。一方面是学习一方面是记录自己的 项目经历,增加经验吧。先上原始图:1、分析对于图中的圆环我们大致可以猜到使用圆检测,那么如果我们得到完整的圆环再相减是不是就可以找到缺陷了。。。。。。2、思路圆检测(大圆)--------->填充------------>小圆检测(填充)---------------&原创 2021-11-03 15:49:15 · 1093 阅读 · 0 评论 -
emgucv4图像处理4----复杂背景环境下的缺陷检测+vs2019+C#+emgucv4
目录1、实现思路2、代码实现1、C#+emgucv2、Opencv+C++这是在Halcon学习群里看到的一个案例,挺有意思的就使用C#+emgucv进行的实现。1、实现思路主要思路:1、原图转灰度图后使用核大小为201做中值滤波;2、灰度图与滤波图做差,然后阈值处理;3、圆形核做开运算,去除杂讯;4、圆形核做闭运算,缺陷连接;5、轮廓查找;2、代码实现1、C#+emgucv OpenFileDialog原创 2021-11-04 14:44:53 · 1122 阅读 · 0 评论