Emgu CV 中文使用手册(零基础入门)_第1页
Emgu CV 中文使用手册(零基础入门)_第2页
Emgu CV 中文使用手册(零基础入门)_第3页
Emgu CV 中文使用手册(零基础入门)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EmguCV中文使用手册(零基础入门・实用版)EmguCV是OpenCV的.NET封装库(支持C#/VB.NET),可在Windows/Linux/macOS上实现图像采集、处理、特征识别、机器学习等功能,核心优势是无缝对接.NET生态(WinForm/WPF/ASP.NET)。以下手册覆盖环境搭建、核心概念、常用操作、实战示例,新手可直接套用。一、环境搭建(必看)1.安装方式(两种主流)方式1:NuGet安装(推荐)打开VisualStudio→项目→管理NuGet程序包→搜索并安装:plaintextEmgu.CVEmgu.CV.runtime.win(Windows)/Emgu.CV.runtime.linux(Linux)/Emgu.CV.runtime.osx(macOS)自动适配.NETFramework/.NETCore/.NET5+,无需手动配置依赖。方式2:手动下载官网()下载对应版本;解压后引用Emgu.CV.dllEmgu.CV.Bitmap.dll;将opencv_worldxxx.dll等运行库复制到项目输出目录。2.环境验证(测试代码)csharp运行usingEmgu.CV;usingEmgu.CV.CvEnum;usingEmgu.CV.Structure;//验证是否安装成功staticvoidMain(string[]args){//创建空白图像Matimg=newMat(200,400,DepthType.Cv8U,3);//绘制文字CvInvoke.PutText(img,"EmguCV安装成功!",newPoint(20,100),FontFace.HersheySimplex,1,newBgr(Color.Green).MCvScalar,2);//显示图像CvInvoke.Imshow("测试窗口",img);CvInvoke.WaitKey(0);//等待按键关闭CvInvoke.DestroyAllWindows();}运行后弹出带绿色文字的窗口,说明环境正常。二、核心概念与数据结构1.核心对象(高频使用)表格类/结构体作用示例场景Mat核心图像容器(替代Image<Bgr,byte>)图像存储、处理、矩阵运算Image<TColor,TDepth>泛型图像类(兼容旧版)简单图像操作(如颜色转换)CvInvoke静态方法类(封装OpenCV核心函数)所有图像处理操作(如滤波、检测)MCvScalar颜色/像素值容器设定颜色、阈值Point/PointF坐标点绘制、特征定位Rectangle矩形区域目标框选、裁剪2.关键类型说明DepthType:像素深度(Cv8U=8位无符号,最常用;Cv32F=32位浮点);通道数:1=灰度图,3=RGB/BGR图,4=透明通道图;颜色空间:EmguCV默认BGR(而非RGB),需注意转换。三、常用操作(代码可直接复制)1.图像读写与显示csharp运行//1.读取图像(支持jpg/png/bmp等)Matimg=CvInvoke.Imread("test.jpg",ImreadModes.Color);//彩色//Matimg=CvInvoke.Imread("test.jpg",ImreadModes.Grayscale);//灰度//2.显示图像CvInvoke.NamedWindow("原图",WindowMode.Normal);CvInvoke.Imshow("原图",img);//3.保存图像CvInvoke.Imwrite("output.jpg",img);//4.等待按键(0=无限等待,数字=毫秒)CvInvoke.WaitKey(0);CvInvoke.DestroyAllWindows();//关闭所有窗口2.图像基本处理csharp运行//1.缩放(宽400,高按比例)MatresizeImg=newMat();CvInvoke.Resize(img,resizeImg,newSize(400,img.Height*400/img.Width));//2.旋转(90度顺时针)MatrotateImg=newMat();CvInvoke.Rotate(img,rotateImg,RotateFlags.Rotate90Clockwise);//3.灰度转换MatgrayImg=newMat();CvInvoke.CvtColor(img,grayImg,ColorConversion.Bgr2Gray);//4.边缘检测(Canny)MatcannyImg=newMat();CvInvoke.Canny(grayImg,cannyImg,50,150);//低阈值、高阈值//5.滤波(高斯模糊)MatblurImg=newMat();CvInvoke.GaussianBlur(img,blurImg,newSize(5,5),0);//核大小(奇数)3.绘制图形与文字csharp运行MatdrawImg=img.Clone();//克隆原图避免修改//1.画矩形(红色,线宽2)CvInvoke.Rectangle(drawImg,newRectangle(50,50,200,100),newMCvScalar(0,0,255),2);//2.画圆(绿色,填充)CvInvoke.Circle(drawImg,newPoint(150,100),30,newMCvScalar(0,255,0),-1);//-1=填充//3.画文字(蓝色,字体大小1)CvInvoke.PutText(drawImg,"EmguCVDraw",newPoint(50,200),FontFace.HersheyComplex,1,newMCvScalar(255,0,0),2);CvInvoke.Imshow("绘制效果",drawImg);4.视频/摄像头采集csharp运行//打开摄像头(0=默认摄像头)VideoCapturecapture=newVideoCapture(0);if(!capture.IsOpened)return;Matframe=newMat();while(true){//读取一帧capture.Read(frame);if(frame.IsEmpty)break;//实时处理(如灰度化)CvInvoke.CvtColor(frame,frame,ColorConversion.Bgr2Gray);CvInvoke.Imshow("摄像头",frame);//按ESC退出(27=ESC键)if(CvInvoke.WaitKey(1)==27)break;}capture.Release();//释放资源CvInvoke.DestroyAllWindows();5.人脸检测(基于Haar分类器)csharp运行//加载人脸分类器(需下载haarcascade_frontalface_default.xml)CascadeClassifierfaceDetector=newCascadeClassifier("haarcascade_frontalface_default.xml");MatfaceImg=CvInvoke.Imread("people.jpg");MatgrayFace=newMat();CvInvoke.CvtColor(faceImg,grayFace,ColorConversion.Bgr2Gray);//检测人脸Rectangle[]faces=faceDetector.DetectMultiScale(grayFace,1.1,3);//绘制人脸框foreach(varfaceinfaces){CvInvoke.Rectangle(faceImg,face,newMCvScalar(0,255,0),2);}CvInvoke.Imshow("人脸检测",faceImg);四、常见问题与解决表格问题现象原因解决方法运行提示“找不到opencv_worldxxx.dll”缺少运行库NuGet安装对应runtime包,或手动复制dll到输出目录图像显示颜色异常(红/蓝颠倒)EmguCV默认BGR格式转换为RGB:CvInvoke.CvtColor(img,img,ColorConversion.Bgr2Rgb)摄像头无法打开权限不足/被占用关闭其他占用摄像头的程序,或更换摄像头编号(1/2)人脸检测无结果分类器文件路径错误/图像质量差核对xml文件路径,确保图像清晰、灰度化五、进阶方向特征提取:SIFT/SURF/ORB特征匹配(需启用非免费模块);机器学习:基于EmguCV的SVM/随机森林/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论