emgu专题

Emgu-WPF 激光雷达研究-定位实现

特定位置或障碍物位置定位实现。 读取激光雷达数据并存储于本地作为测试数据。每一帧数据对同一障碍物的定位信息均存在偏差。所以先对需要定位的点进行数据取样。取样过程中,遇到数据丢失,或检测到多个障碍物(不满足障碍物生存指数的障碍物未在UI界面绘制)则丢弃已经采样到的数据,重新开始采样,样本数足够后,执行均值点计算。 执行均值计算后,将计算的点位信息保存至配置文件并在UI界面绘制出来,重新加载测

Emgu-WPF 激光雷达研究-移动物体跟踪

接前两篇博客: 激光雷达数据解析并绘制雷达图 https://blog.csdn.net/u013224722/article/details/80738619 激光雷达-移动物体检测 https://blog.csdn.net/u013224722/article/details/80738995 以及仅用WPF处理:绘制2D激光实时图 https://blog.csdn.net/u01

Emgu-WPF 激光雷达研究-移动物体检测

接上篇: https://blog.csdn.net/u013224722/article/details/80738619 先pose出效果图,下次撰写思路。 WPF录屏经典源码分享: https://github.com/NickeManarin/ScreenToGif https://github.com/NickeManarin/ScreenToGif/releases 运动物

Emgu-WPF 激光雷达研究-绘制雷达图

硬件:Hokuyo URG04LX 环境:VS2017- win10- 64  Emgu_3.2.0.2682 语言:C#  WPF   数据解析参考: https://sourceforge.net/p/urgnetwork/wiki/Home/ https://github.com/bqhdev/urg04lx_data_decoder http://sourceforge.ne

Emgu-WPF学习使用-中值模糊

实现效果: 实现途径: 前提:Image File-> System.Drawing.Bitmap->Image<Bgr, byte> string sFile = GlobalVar.DATAS_PATH + "Samples/Test1.png"; BitmapImage oOriginBitSrc = new BitmapImage(new Uri(sFile));System

Emgu-WPF学习使用-识别二维码的位置

参考链接:http://blog.csdn.net/gaobobo138968/article/details/47663607    我完全参照该链接实现了二维码的位置锁定,向原作者致敬。    由于我使用的为最新版本的Emgu,很多封装函数调用方法有所变化,新手接触Emgu,尝试做了调整,部分参数也做了微调!    我使用的Emgu版本:emgucv-windesktop

【Emgu CV教程】10.15、FillPoly()不规则形状填充颜色

文章目录 一、概念二、填充不规则图形1.原始素材2.代码3.运行结果 二、最大轮廓填充颜色1.原始素材2.代码3.运行结果 一、概念 图像的连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域,连通域分析是指在图像中寻找出彼此互相独立的连通域并将其标记出来。 上一篇讲的是利用ConnectedComponentsWithStats查找连通区域,如果我们已经得到了一个

【Emgu CV教程】10.13、利用形状场景算法比较轮廓

文章目录 一、演示1.原始素材2.代码3.运行结果 形状场景算法比较轮廓,要引用Emgu.CV.Shape,定义检测器ShapeContextDistanceExtractor,然后对两个轮廓进行比较,得出结果。 一、演示 1.原始素材 原始图像srcMat1如下图: 待比较的图像srcMat2如下图: 2.代码 轮廓检索模式要选择RetrType.Extern

【Emgu CV教程】10.7、轮廓的最小外接矩形

文章目录 一、轮廓的最小外接矩形二、简单应用1.原始素材2.代码3.运行结果 一、轮廓的最小外接矩形 第10.2章,已经介绍了BoundingRectangle()函数求轮廓的外接矩形,其实这个矩形是正矩形,也就是矩形的四条边分别是水平、垂直的。同时Emgu.CV中还有一个函数,可以求出最小外接矩形,这个矩形是带有一定旋转角度的,函数是: public static Ro

【Emgu CV教程】10.6、轮廓之凸包缺陷检测

文章目录 一、凸包缺陷1.什么叫凸包的缺陷2.凸包缺陷四个特征 二、凸包缺陷检测函数三、简单应用1.原始素材2.代码3.运行结果 一、凸包缺陷 1.什么叫凸包的缺陷 凸包与轮廓之间的部分称为凸缺陷。原始图形的凸包 减去 原始图形的轮廓,得到的那部分就是凸包缺陷,或者说叫凹进去的部分。 如下图所示原始图形是五边形,绿框就是得到的凸包,减去它的轮廓,就是红色边框三角形部分,

【Emgu CV教程】10.5、轮廓之凸包

文章目录 一、什么叫轮廓的凸包二、凸包函数三、二维点集寻找凸包四、绘制物体轮廓的凸包1.原始素材2.代码3.运行结果 一、什么叫轮廓的凸包 凸包是一个更加简化的多边形,是轮廓最外层的“凸”多边形,与前一篇多边形近似拟合不同的是,凸包组成的折线图形,必须包含住整个轮廓,而且折线图形任意连续的三个点的内角小于180度。 下图中,右侧的多边形是凸包,左侧的是凹包,注意红框标注的

【Emgu CV教程】10.1、轮廓

文章目录 一、相关概念二、相关函数1.查找轮廓函数2.绘制轮廓函数 三、演示1.原始素材2.代码3.运行结果 四、遍历轮廓的每一个点 从这一章开始,讲详细讲一下与轮廓有关的相关函数及应用方法。 一、相关概念 在OpenCV中,轮廓是图像中连续的点的集合,这些点具有相同的颜色(彩色图像)或强度(二值化图像)。 对物体的大小及形状判断、位置定位、物体识别、颜色分割等等应用,都

【Emgu CV教程】9.5、形态学常用操作之形态学梯度

文章目录 一、相关概念1.什么叫形态学梯度2.形态学梯度的函数 二、演示1.原始素材2.代码3.运行结果 一、相关概念 1.什么叫形态学梯度 形态学梯度,就是用膨胀的原始图像减去腐蚀的原始图像,所以它的特性就是去除前景物体的内部区域,只得到前景物体的白色轮廓。一般的用处就是获取二值化图形内物体的轮廓。 2.形态学梯度的函数 Emgu CV中,形态学梯度的函数定义如下:

【Emgu CV教程】9.4、形态学常用操作之闭运算

文章目录 一、相关概念1.什么叫闭运算3.闭运算的函数 二、演示1.原始素材2.代码3.运行结果 一、相关概念 1.什么叫闭运算 上一篇讲开运算,这一篇讲闭运算。与开运算相反,闭运算是先进行膨胀后进行腐蚀。回忆一下,膨胀有什么特点???去除白色前景物体内的黑色斑点,也可以连接两个白色前景。 再腐蚀一下呢,前景物体是不是又回到了原来的大小。所以闭运算能够除去前景物体内部的小

【Emgu CV教程】9.3、形态学常用操作之开运算

文章目录 一、相关概念1.什么叫开运算3.开运算的函数 二、演示1.原始素材2.代码3.运行结果 一、相关概念 1.什么叫开运算 腐蚀、膨胀已经讲完,这两个是最基础的形态学操作。这次讲的是开运算,它是一个先腐蚀、后膨胀的过程。原始图像先被腐蚀,这一步去除了白色前景物体的边缘毛刺、雪花噪声。然后再进行膨胀操作,回复原始前景物体的大小、或者连接因为腐蚀而断开的前景物体。 它

【Emgu CV教程】9.1、形态学常用操作之腐蚀

文章目录 一、相关概念1.什么叫形态学2.形态学操作的目的3.形态学都包含哪些操作4.结构元素StructuringElement 二、腐蚀1.什么叫腐蚀2.腐蚀的作用3.腐蚀的函数 三、演示1.原始素材2.代码3.运行结果 一、相关概念 1.什么叫形态学 形态学,英文名称morphology,根据网络上专业的说法,它是一种基于形状的图像处理技术,通过结构元素与图像进行特

【Emgu CV教程】7.4、图像锐化(增强)之对数变换

文章目录 一、介绍二、代码三、效果举例 一、介绍 对数变换的图像增强,顾名思义,就是求出每个像素的对数值,然后生成新的目标图像,再经过简单处理,就可以实现图像增强的目的。Emgu CV没有专门的对数增强的函数,可以自己写代码实现,思路如下: 1. 加载原始图像srcMat; 2. 对srcMat每个像素值求出对数值,生成新图像dstMat; 3. dstMat归一化,范围是

【Emgu CV教程】6.7、图像平滑之MedianBlur()中值滤波

文章目录 一、介绍1.原理2.函数介绍 二、举例1.原始素材2.代码3.运行结果 一、介绍 1.原理 图像的滤波分为线性滤波和非线性滤波,常见的线性滤波就是前面介绍的均值滤波、方框滤波、高斯滤波。常见的非线性滤波主要包括中值滤波、双边滤波,今天就先介绍中值滤波。线性滤波就是加权再求值,中值滤波则是取当前像素点及其邻域像素点,将这些像素点排序,再将位于中间位置的像素值作为当

Emgu学习笔记(四)---Canny、线检测、圆检测

Canny边缘检测: 用法和opencv中的一致, Image<Gray,Byte> Image<Gray,Byte>.Canny(double thresh,double threshLinging) thresh、threshLinging为第一滞后阈值和第二滞后阈值。 private void button1_Click(object sender, EventArgs e)

Emgu学习笔记(三)----Emgu使用技巧简单汇总

转载于:http://blog.csdn.net/cvmat/article/details/53706846 1、Emgu Image类有一个ToBitmap()函数,可以返回一个位图对象,用于使用Windows窗体PictureBox控件上显示 2、Emgu Mat转成Emgu Image方法: Image<Bgr, Byte> img = mat.ToImage<Bgr, Byte>(

Emgu 学习笔记(二)---图像二值化,自适应阈值化,Otsu二值化

图像二值化,自适应阈值化,Otsu二值化 Emgu灰度化、二值化操作方法和OpenCV中区别不大,Threshold()来实现的。 自适应阈值是整幅图像使用一个阈值,自适应阈值是图像的不同区域使用不同的阈值,而这个阈值是对整个区域计算出来的。在Emgu中也是调用函数AdaptiveThreshold()来实现的。 public static AdaptiveThreshold(IInputA

EMGU.CV入门(十五、模板匹配)

一、函数介绍 1.1 MatchTemplate 模板匹配函数 参数说明 参数1:输入图像 参数2:匹配模板 参数3:返回矩阵 参数4:算法类型 其中算法类型共计六种: //// 摘要:// This function is similiar to cvCalcBackProjectPatch. It slids through image,// comp

【Emgu CV教程】5.6、几何变换之LinearPolar()极坐标变换

LinearPolar()线性极坐标转换函数用于将图像从笛卡尔坐标系转换为极坐标系,太难懂了,还是简单的说吧 笛卡尔坐标系就是平面直角坐标系,用X轴、Y轴表示的图像,最常用的表示方式,比如灰度图Point(360,100) = 230,就表示第360列,第100行的那个点数值是230。 极坐标系呢?下面这个说明来自百度百科: 极坐标,属于二维坐标系统,创始人是牛顿,主要应用于数学领域

【Emgu CV教程】5.1、几何变换之平移

图像的几何变换对于图像处理来说,也是最基础的那一档次,包括平移、旋转、缩放、透视变换等等,也就是对图像整理形状的改变,用到的函数都比较简单,理解起来也很容易。但是为了凑字数,还是一个函数一个函数的讲。 今天先讲图像平移,就是将原始图像左右、上下移动一段距离,图像平移有两种方式,下面一一介绍。以素材  榴莲.jpg举例,有三种方式。 1、平移后图像大小不变,原始图像丢失信息 原始图像 榴莲

C# Emgu.CV4.8.0读取rtsp流分段保存

【官方框架地址】 https://github.com/emgucv/emgucv 【算法介绍】 EMGU CV(Emgu Computer Vision)是一个开源的、基于.NET框架的计算机视觉库,它提供了对OpenCV(开源计算机视觉库)的封装。EMGU CV使得在.NET应用程序中实现计算机视觉功能变得更加容易,同时也支持C#和VB.NET等编程语言。 以下是对EMGU的详细介绍:

【Emgu.CV教程】第24篇 、色彩处理之LUT()查找表转换颜色

LUT (Look-Up Table)查找表转换,是对原始图像的像素数值进行快速转换,以实现图像的像素压缩目的。LUT()函数的官方定义如下: public static void LUT(IInputArray src, // 输入图像IInputArray lut, // 查找表IOutputArray dst, // 输出图像)         根据网上的各位大神,