Emgu Capture类 分析

来源:互联网 发布:js设置fontsize 编辑:程序博客网 时间:2024/06/10 15:32

2016714

Capture类:从摄像头或者视频文件中取图像

命名空间:Emgu.CV

 

Capture类的构造函数:4

public Capture()//使用默认摄像头

public Capture(

int camIndex//camINdexint类型,从0开始(具体的官方文档也没说清楚)

)//使用指定的摄像头

public Capture(

string fileName

)//使用文件名或者视频流的url

这种构造方法应该是最为常用的,可以直接打开一个视频文件。

例:Capture myCapture = new Capture(filepath);

public Capture(

CaptureType captureType//Emgu.CV.CvEnum.CaptureType

)//使用特定摄像头

注:Emgu.CV.CvEnum.CaptureType可以取

Member name

Value

Description

 

Any

0

Auto detect

 

Mil

100

MIL proprietary drivers

 

Vfw

200

Platform native

 

V4L

200

Platform native

 

V4L2

200

Platform native

 

Firewire

300

IEEE 1394 drivers

 

IEEE1394

300

IEEE 1394 drivers

等等,要深入了解的请查看emgucv的文档。

 

方法:

public void Dispose()//处理函数实现了IDisposable接口(继承自DisposableObject

//释放capture对象的资源

public virtual void DuplexQueryFrame()//WCF下查询一帧

public virtual void DuplexQuerySmallFrame()//WCF下查询一小帧

public double GetCaptureProperty(

CapProp index

)//获取capture对象的一些属性

CapProp Enumeration:

比较常用的几个枚举:

PosMsec:当前视频所在的毫秒数

PosFrames:当前视频所在帧数

PosAviRatio:当前视频位置在总视频中的相对位置

FrameWidth:帧宽

FrameHeight:帧长

Fps:帧速

FrameCount:帧数

Format:格式

 

public virtual bool Grab()//判断下一帧是否存在,并且使用后capture指向下一帧

public void Pause()//暂停grab如果grab在运行

public virtual Mat QueryFrame()//查询一帧(bgr颜色空间),并且使用后capture指向下一帧

public virtual Mat QuerySmallFrame()//一半长一半宽,称为small,通常与wcf搭配使用

public virtual bool Retrieve(

IOutputArray image,//输出的图像结构

int flag = 0//可选参数

)//grab之后得到一帧灰度图像

public bool SetCaptureProperty(

CapProp property,//要设置哪个属性

double value//要设置的值

)//设置capture的属性

public void Start()//在一个分开的线程中开始grab。一旦开始,使用ImageGrabbed event handler RetrieveGrayFrame/RetrieveBgrFrame 去获得图像帧。

public void Stop()//停止grab线程

 

Capture属性

CaptureSource:capture的类型

FlipHorizontal:转成水平

FlipVertical:转成垂直

FlipType:得到或者设置flip的种类

Heightcapture的高

Widthcapture的宽

 

事件

public event EventHandler ImageGrabbed

//grab的时候,这个事件被call

 

 

 

0 0
原创粉丝点击