EmguCV
cccccc1212
这个作者很懒,什么都没留下…
展开
-
EmguCV Image类中的函数(三)几种边缘检测算法和仿射变换
一、边缘检测 (1)、Sobel导数 Sobel算子结合了高斯平滑和微分求导。可以用来计算图像灰度函数的近似梯度。计算时是将原图像分别与水平方向和竖直方向的奇数大小的内核进行卷积,然后再图像的每一点上进行计算(求根号下两数的平方和,有时会用两数的绝对值和)得出近似梯度。 当内核大小等于3时使用Sobel内核的误差会比较大,在这里可以使用Schar原创 2015-08-24 16:42:49 · 8827 阅读 · 4 评论 -
处理EmguCV3.0.0 “Emgu.CV.MatInvoke”的类型初始值设定项引发异常。的报错
直接将示例程序文件夹里的x86 或x64文件夹对应的复制入你的项目生成的exe所在的文件夹就好原创 2015-08-05 00:03:59 · 6581 阅读 · 2 评论 -
EmguCV获取kinect的彩色帧和红外图
如不能正确配置EmguCV 看这里http://blog.csdn.net/qq_22033759/article/details/47299269我使用的配置是Emgucv3+kinect2.0sdk+vs2015用的是WinFrom,不是WPF,虽然WPF可以添加WinFrom控件 ,但还是原生的用着方便。把Emgncv配好后添加kinect的引用还是要在from中放原创 2015-08-06 16:31:46 · 3058 阅读 · 5 评论 -
向OpenCV3.0中添加opencv_contrib插件中的新功能
OpenCv3改变了框架,采用了主体+插件的方式,插件里是一些新功能,有些还不稳定,官方在不断地更新。首先,现在这https://github.com/itseez/opencv_contrib,下载。然后安装cmake,并把安装目录的bin文件夹添加到环境变量里。在cmd中 使用cd <你的opencv安装目录下的build文件夹的地址>cmake -DOPENCV_EXTRA_MODULES_原创 2015-09-09 09:28:58 · 4956 阅读 · 1 评论 -
EmguCV Image类中的函数(二)使用MorphologyEx进行更多的变换
MorphologyEx中所有的变换如下图所示调用方法:Mat aaa = CvInvoke.GetStructuringElement(Emgu.CV.CvEnum.ElementShape.Rectangle, new Size(5, 5), new Point(2, 2)); imageBox1.Image = a.Convert().Morpho原创 2015-08-21 14:35:42 · 9576 阅读 · 0 评论 -
EmguCv3中使用决策树
由于我训练的范围太小,图片也要放大到像素级才能看得清。 public Form1() { InitializeComponent(); DTrees tree = new DTrees(); float[,] fdata = new float[5, 2] { { 1, 1 }, { 2, 2 },原创 2015-09-30 00:27:42 · 1775 阅读 · 1 评论 -
EmguCV录制视频
我所录制的为摄像头的视频: 使用的函数为VideoWriter。using System;using System.Drawing;using System.Windows.Forms;using Emgu.CV;using Emgu.CV.CvEnum;using Emgu.CV.Structure;namespace EmguCVHist{ public partial c原创 2015-09-18 23:29:37 · 6683 阅读 · 1 评论 -
EmguCV使用Stitcher类来拼接图像
直接提供几张连续的照片就可以使用这个类中的函数来拼接了。 这种拼接可以去除重复的地方。using System;using System.Windows;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq原创 2015-09-19 00:37:31 · 8098 阅读 · 19 评论 -
EmguCV用鼠标绘图
在EmguCV中没有找到OpenCV中的对鼠标的调用的函数。 但是可以用WinFrom的属性来获得鼠标的按键和位置与移动。 EmguCV自带的ImageBox并不能这么用,因为无法使自带的滚轮缩放和拖拽缩放失效,所以无法正常的使用鼠标绘图在ImageBox中。 就使用WinFrom的带的PictureBox来做。 就是在放图片时要转换为Bitmap,EmguCV中已经封装了调用特别简单。原创 2015-09-19 12:31:42 · 4424 阅读 · 4 评论 -
Emgucv使用FaceRecognizer类人脸识别
这是之前写的用的Opencv做的,相同的方法。http://blog.csdn.net/qq_22033759/article/details/48578191using System;using System.Windows;using System.Collections.Generic;using System.ComponentModel;using System.Data;usi原创 2015-09-23 19:10:02 · 8474 阅读 · 11 评论 -
EmguCV中SVM的实现
关于SVM的介绍看这里http://blog.csdn.net/qq_22033759/article/details/48348251 最终的运行图如下: 然后这是相同条件下用OpenCV实现的: 估计在算法的实现上还是有bug 先上代码吧;public partial class Form1 : Form { public Form1() {原创 2015-09-12 20:32:08 · 5112 阅读 · 1 评论 -
在Azure上通过asp.net使用EmguCV
我使用的环境为emgucv3.0+vs2015 我现在用的是之前数据库大作业用到的一个webservice 没建新的。首先需要在vs里创建一个asp.net Web应用程序 模板选Empty 然后添加一个webservice。 由于在程序和webservice之间传递Bitmap貌似有点问题,所以我这里是将他们转换为byte的数组来传递的。 先添加那几个emgucv的dll文件的引用,接着原创 2016-05-18 01:34:58 · 1831 阅读 · 0 评论 -
EmguCV+Kinect2.0获取高清面部帧
基础信息请看这,本文中的代码是基于这篇文章中的代码修改而得EmguCv +Kinect2.0 获取面部信息由于不需要获取FaceFrameFeatures 所以NuiDatabase可以不用复制到根目录这段代码依然只能追踪一个人,但我将所追踪到的人脸与彩色帧进行的重合,所以用到了CoordinateMap来转换坐标using System;using System.Collectio原创 2015-08-15 22:32:21 · 2671 阅读 · 2 评论 -
EmguCV+Kinect2.0 实时抠图
我的环境的KinectSDK2.0+EmguCV3.0.0依旧还是WinFrom和ImageBox因为需要用到BodyIndex的数据,但BodyIndex的分辨率和RGB图像的分辨率不同,所以需要用的CoordinateMap类中的坐标转换函数。然后直接对colorimage的像素点进行操作。同样,需要用的指针,要把项目调整为允许不安全的代码。代码和注释如下:using原创 2015-08-14 00:14:34 · 6962 阅读 · 2 评论 -
Kinect2.0+EmguCV获取景深图
先说一下我的环境:Kinect sdk2.0+EmguCV3.0.0+vs2015具体代码如下using System;using System.Windows;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using S原创 2015-08-10 14:53:28 · 2226 阅读 · 0 评论 -
EmguCV Image类中的函数(四)使用MatchTemplate函数进行模板匹配
MatchTemplate的函数原型为Image<Gray, float> MatchTemplate(Image<TColor, TDepth> template, TemplateMatchingType method);其中TemplateMatchingType 共有6种检测方式 1、平方差匹配 Sqdiff 最好匹配为0.匹配越差,匹配值越大。 2、相关匹配 Ccorr 数值越大表原创 2015-08-27 01:15:02 · 15265 阅读 · 10 评论 -
Emgucv 直方图相关,以后整理
Image<Bgra,byte>a=new Image<Bgra,byte>("153_140703112619_1.jpg");a._EqualizeHist();直方图均衡化,提高图片对比度a = new Image<Bgr, byte>("153_140703112619_1.jpg");Image<Gray, byte> asdasd = new Image<Gray, byte>(a.原创 2015-08-25 20:32:25 · 5630 阅读 · 0 评论 -
EmguCV的配置和获取摄像头画面
如遇到“Emgu.CV.MatInvoke”的类型初始值设定项引发异常报错 ,看这里http://blog.csdn.net/qq_22033759/article/details/47285653。我用的是emgucv3.0.0版本,网上有好多教程是2.4的版本的,有一部分已经不再适用,3.0.0版本比之前的要方便得多。先是添加引用,库文件所在目录为emgucv安装文件夹内的bin文件夹原创 2015-08-05 16:22:47 · 20616 阅读 · 5 评论 -
EmguCV Image类中的函数(一)
函数太多,怕忘掉,主要为自己做个备忘。1、Image AbsDiff 返回两幅图片或此图与某个yanse像素的差的绝对值的图片2、Image Add 返回这张图片与图片或颜色直接相加的图片(矩阵加法)3、Image Canny 边缘检测4、Image Clone() 拷贝5、Image ConcateHorizo原创 2015-08-20 14:40:21 · 9826 阅读 · 0 评论 -
EmguCV+Kinect2.0获取BodyIndex图
我的环境为KinetSDK2.0+EmguCV3.0.0+vs2015依旧为WinFrom ,并在主窗口内拖入ImageBox不知道ImageBox的可以看我之前的博文http://blog.csdn.net/qq_22033759/article/details/47299269代码中需要用到指针,需要在项目属性中调一下上代码using System;using Syste原创 2015-08-12 23:44:33 · 2136 阅读 · 3 评论 -
使用EmguCv播放指定视频
用Capture来加载一个视频。 用GetCaptureProperty函数可以获取这个视频的各种属性。 然后用Application.Idle来连续的显示视频中的帧(显示出一帧了,程序进入空闲,就继续加载下一帧) 由于视频中的帧太多,.net的垃圾回收机制赶不上,就使用GC.Collect();来强制回收垃圾,可以把程序的内存占用从700MB降到100MB左右public partial c原创 2015-08-28 16:21:46 · 5635 阅读 · 9 评论 -
EmgnCv进行轮廓寻找和计算物体凸包
一、轮廓寻找 用的是FindContours函数,在CvInvoke中 不过需要用到这个VectorOfVectorOfPoint,来代替c++中的Vector 还有就是FindContours函数中的第三个参数hierarchy,不知道作用是什么,填入的只要是符合IOutputArray类型的都可以运行 代码:using System;using System.Collections.G原创 2015-08-27 16:20:38 · 11670 阅读 · 6 评论 -
使用EmguCv计算包围物体的最小圆与最小可旋转矩形和不可选择矩形
这篇博客需要用的上篇博客用的轮廓寻找的数据 链接 所使用的函数为BoundingRectangle、MinEnclosingCircle、MinAreaRect。 这三者所使用的参数并不一样,BoundingRectangle函数的参数为检测到的直接数据。 其他两个均为转化得来的PointF数组。 图片中分块的多个图形也可以检测的到。 有了上篇博客的基础,这个并不难。代码:public原创 2015-08-28 01:25:54 · 10117 阅读 · 1 评论 -
Emgucv使用Harris角点检测和Fast角点检测
角点是两个边缘的连接点,代表了两个边缘变化的方向上的点,在这点上图像梯度有很高的变化。是图像中的重要特征点。在opencv中还有改进版的Harris角点检测:Shi-Tomasi 角点检测算法,但在Emgucv里并没有封装,所以目前无法直接使用。 一、Harris角点检测 Harris角点检测通过判断点在水平和竖直方向上的变化程度来判断是否为角点,使用CornerHarris函数,处理后再用阈值原创 2015-08-29 01:09:29 · 7553 阅读 · 0 评论 -
EmguCv +Kinect2.0 获取面部信息
我使用的环境为EmguCv3.0.0+KinectSDK2.0+vs2015使用Kinect获取面部帧比较特殊,必须要在x64环境下才行,另外,还需要将示例项目文件夹中的NuiDatabase复制到程序的根目录里利用face库里的FaceFrameFeatures可以很方便的获取面部的多种信息 FaceFrameFeatures DefaultFaceFrameFeatures原创 2015-08-15 14:05:06 · 3316 阅读 · 4 评论 -
Emgucv 使用级联分类器来检测物体
级联分类器即为Emgucv中的 CascadeClassifier。使用 CascadeClassifier来加载一个.xml分类器文件,然后使用DetectMultiScale函数来对图片进行检测。 这是DetectMultiScale函数。public Rectangle[] DetectMultiScale(IInputArray image, double scaleFactor = 1.原创 2015-08-30 23:51:40 · 5794 阅读 · 5 评论 -
Emgucv SURF特征点的寻找和匹配
使用SURF类和其相关的函数需要添加Emgu.CV.Features2D和Emgu.CV.XFeatures2D这两个命名空间,同时也可以使用cuda模块来进行加速,由于使用Cuda需要安装,但Cuda目前支持的显卡驱动并不兼容win10,所以这里我就简单的说一下通用的方法吧。 这个代码里使用了UMat,UMat应该算是3.0版本中的新特性,根据官方的说法,UMat等价于Opencv中的Mat。具原创 2015-08-29 21:22:11 · 19882 阅读 · 21 评论