Camera.cs ( File view )

Description:A s...
  • By vaselly 2014-09-16
  • View(s):40
  • Download(s):0
  • Point(s): 1
			// Motion Detector
//
// Copyright  Andrew Kirillov, 2005
// andrew.kirillov@gmail.com
//
namespace motion
{

	using System;
	using System.Drawing;
	using System.Threading;
	using VideoSource;

	/// 
	/// Camera class
	/// 
	public class Camera
	{

		private IVideoSource	videoSource = null;
		private IMotionDetector	motionDetecotor = null;
		private Bitmap			lastFrame = null;

		// image width and height
		private int		width = -1, height = -1;

		// alarm level
		private double	alarmLevel = 0.005;

		//
		public event EventHandler	NewFrame;
		public event EventHandler	Alarm;

		// LastFrame property
		public Bitmap LastFrame
		{

			get {
 return lastFrame; 
}
		
}
		// Width property
		public int Width
		{

			get {
 return width; 
}
		
}
		// Height property
		public int Height
		{

			get {
 return height; 
}
		
}
		// FramesReceived property
		public int FramesReceived
		{

			get {
 return ( videoSource == null ) ? 0 : videoSource.FramesReceived; 
}
		
}
		// BytesReceived property
		public int BytesReceived
		{

			get {
 return ( videoSource == null ) ? 0 : videoSource.BytesReceived; 
}
		
}
		// Running property
		public bool Running
		{

			get {
 return ( videoSource == null ) ? false : videoSource.Running; 
}
		
}
		// MotionDetector property
		public IMotionDetector MotionDetector
		{

			get {
 return motionDetecotor; 
}
			set {
 motionDetecotor = value; 
}
		
}

		// Constructor
		public Camera( IVideoSource source ) : this( source, null )
		{
 
}
		public Camera( IVideoSource source, IMotionDetector detector )
		{

			this.videoSource = source;
			this.motionDetecotor = detector;
			videoSource.NewFrame += new CameraEventHandler( video_NewFrame );
		
}

		// Start video source
		public void Start( )
		{

			if ( videoSource != null )
			{

				videoSource.Start( );
			
}
		
}

		// Siganl video source to stop
		public void SignalToStop( )
		{

			if ( videoSource != null )
			{

				videoSource.SignalToStop( );
			
}
		
}

		// Wait video source for stop
		public void WaitForStop( )
		{

			// lock
			Monitor.Enter( this );

			if ( videoSource != null )
			{

				videoSource.WaitForStop( );
			
}
			// unlock
			Monitor.Exit( this );
		
}

		// Abort camera
		public void Stop( )
		{

			// lock
			Monitor.Enter( this );

			if ( videoSource != null )
			{

				videoSource.Stop( );
			
}
			// unlock
			Monitor.Exit( this );
		
}

		// Lock it
		public void Lock( )
		{

			Monitor.Enter( this );
		
}

		// Unlock it
		public void Unlock( )
		{

			Monitor.Exit( this );
		
}

		// On new frame
		private void video_NewFrame( object sender, CameraEventArgs e )
		{

			try
			{

				// lock
				Monitor.Enter( this );

				// dispose old frame
				if ( lastFrame != null )
				{

					lastFrame.Dispose( );
				
}

				lastFrame = (Bitmap) e.Bitmap.Clone( );

				// apply motion detector
				if ( motionDetecotor != null )
				{

					motionDetecotor.ProcessFrame( ref lastFrame );

					// check motion level
					if (
						( motionDetecotor.MotionLevel >= alarmLevel ) &&
						( Alarm != null )
						)
					{

						Alarm( this, new EventArgs( ) );
					
}
				
}

				// image dimension
				width = lastFrame.Width;
				height = lastFrame.Height;
			
}
			catch ( Exception )
			{

			
}
			finally
			{

				// unlock
				Monitor.Exit( this );
			
}

			// notify client
			if ( NewFrame != null )
				NewFrame( this, new EventArgs( ) );
		
}
	
}

}
			
...
Expand> <Close

Want complete source code? Download it here

Point(s): 1

Download
0 lines left, continue to read
Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
01.96 kB
01.96 kB
AssemblyInfo.cs2.37 kB2006-04-11 11:57
01.96 kB
01.96 kB
dshow.dll32.00 kB2007-06-13 21:51
dshow.pdb25.50 kB2007-06-13 21:51
01.96 kB
dshow.dll32.00 kB2007-06-07 20:26
01.96 kB
1.txt45.00 B2006-04-11 11:57
IBaseFilter.cs2.14 kB2006-04-11 11:57
IBasicVideo.cs4.70 kB2006-04-11 11:57
ICreateDevEnum.cs592.00 B2006-04-11 11:57
IEnumPins.cs831.00 B2006-04-11 11:57
IFileSourceFilter.cs861.00 B2006-04-11 11:57
IFilterGraph.cs1.58 kB2006-04-11 11:57
IGraphBuilder.cs2.84 kB2006-04-11 11:57
IMediaControl.cs1.49 kB2006-04-11 11:57
IMediaEvent.cs3.06 kB2006-04-11 11:57
IMediaPosition.cs1.88 kB2006-04-11 11:57
IMediaSeeking.cs2.79 kB2006-04-11 11:57
IPin.cs2.36 kB2006-04-11 11:57
IPropertyBag.cs853.00 B2006-04-11 11:57
ISampleGrabber.cs2.21 kB2006-04-11 11:57
IVideoFrameStep.cs747.00 B2006-04-11 11:57
IVideoWindow.cs5.90 kB2006-04-11 11:57
Structures.cs4.37 kB2006-04-11 11:57
Uuids.cs4.87 kB2006-04-11 11:57
Win32.cs919.00 B2006-04-11 11:57
dshow.csproj5.38 kB2007-03-16 20:38
Filter.cs2.57 kB2006-04-11 11:57
FilterCollection.cs2.14 kB2006-04-11 11:57
01.96 kB
01.96 kB
dshow.dll32.00 kB2007-06-13 21:51
dshow.pdb25.50 kB2007-06-13 21:51
01.96 kB
dshow.csproj.FileList.txt216.00 B2007-06-15 15:17
01.96 kB
dshow.dll32.00 kB2007-06-07 20:26
01.96 kB
dshow.dll28.00 kB2007-06-07 18:09
01.96 kB
Tools.cs1.11 kB2006-04-11 11:57
motion.sln1.79 kB2007-03-16 20:38
motion.suo35.00 kB2007-06-15 15:08
01.96 kB
AboutForm.cs11.91 kB2007-06-15 15:17
AboutForm.resx9.77 kB2007-06-15 15:17
App.ico26.07 kB2006-04-11 11:57
AssemblyInfo.cs2.47 kB2007-03-20 08:40
01.96 kB
01.96 kB
AForge.dll20.00 kB2007-03-16 19:54
AForge.Imaging.dll108.00 kB2007-03-19 18:42
AForge.Math.dll28.00 kB2007-03-16 19:54
App.ico26.07 kB2006-04-11 11:57
dshow.dll32.00 kB2007-06-13 21:51
dshow.pdb25.50 kB2007-06-13 21:51
motion.exe132.00 kB2007-06-15 15:17
motion.exe.config147.00 B2007-03-19 09:20
motion.pdb181.50 kB2007-06-15 15:17
motion.vshost.exe5.50 kB2005-09-23 07:56
motion.vshost.exe.config147.00 B2007-03-19 09:20
Tiger.Video.VFW.dll24.00 kB2007-06-13 21:51
Tiger.Video.VFW.pdb27.50 kB2007-06-13 21:51
01.96 kB
AForge.dll20.00 kB2007-03-16 19:54
AForge.Imaging.dll108.00 kB2007-03-19 18:42
AForge.Math.dll28.00 kB2007-03-16 19:54
dshow.dll32.00 kB2007-06-07 20:26
motion.exe124.00 kB2007-06-07 20:40
motion.exe.config147.00 B2007-03-19 09:20
motion.vshost.exe5.50 kB2005-09-23 07:56
motion.vshost.exe.config147.00 B2007-03-19 09:20
Tiger.Video.VFW.dll24.00 kB2007-06-07 20:26
Camera.cs3.47 kB2006-04-11 11:57
CameraWindow.cs5.17 kB2006-04-11 11:57
CameraWindow.resx5.55 kB2006-04-11 11:57
CaptureDeviceForm.cs4.49 kB2007-06-15 15:17
CaptureDeviceForm.resx5.37 kB2006-04-11 11:57
ClassDiagram1.cd1.00 B2007-06-07 18:39
Copyright.txt913.00 B2007-06-15 15:17
IMotionDetector.cs785.00 B2007-06-07 20:36
MainForm.cs21.34 kB2007-06-13 21:54
MainForm.resx45.81 kB2007-06-13 21:51
motion.csproj7.33 kB2007-06-07 18:45
MotionDetector1.cs9.95 kB2007-06-07 20:37
MotionDetector2.cs4.44 kB2007-06-07 20:38
MotionDetector3.cs5.06 kB2007-06-07 20:38
MotionDetector3Optimized.cs6.57 kB2007-06-07 20:38
MotionDetector4.cs4.89 kB2007-06-07 20:38
01.96 kB
01.96 kB
motion.AboutForm.resources3.00 kB2007-06-15 15:17
motion.CameraWindow.resources581.00 B2007-06-13 21:51
motion.CaptureDeviceForm.resources279.00 B2007-06-13 21:51
motion.csproj.GenerateResource.Cache1.00 kB2007-06-15 15:17
motion.exe132.00 kB2007-06-15 15:17
motion.MainForm.resources26.62 kB2007-06-13 21:51
motion.pdb181.50 kB2007-06-15 15:17
motion.Resources.1.gif828.00 B2006-04-11 11:57
motion.Resources.2.gif822.00 B2006-04-11 11:57
motion.Resources.3.gif830.00 B2006-04-11 11:57
motion.Resources.4.gif822.00 B2006-04-11 11:57
motion.Resources.5.gif822.00 B2006-04-11 11:57
motion.Resources.6.gif830.00 B2006-04-11 11:57
motion.Resources.7.gif821.00 B2006-04-11 11:57
motion.Resources.8.gif822.00 B2006-04-11 11:57
motion.Resources.9.gif822.00 B2006-04-11 11:57
motion.URLForm.resources269.00 B2007-06-13 21:51
ResolveAssemblyReference.cache13.42 kB2007-06-15 14:58
01.96 kB
motion.csproj.FileList.txt1.64 kB2007-06-15 15:17
01.96 kB
motion.AboutForm.resources3.00 kB2007-06-07 20:26
motion.CameraWindow.resources581.00 B2007-06-07 20:26
motion.CaptureDeviceForm.resources279.00 B2007-06-07 20:26
motion.csproj.GenerateResource.Cache1.00 kB2007-06-07 20:27
motion.exe124.00 kB2007-06-07 20:40
motion.MainForm.resources26.62 kB2007-06-07 20:27
motion.Resources.1.gif828.00 B2006-04-11 11:57
motion.Resources.2.gif822.00 B2006-04-11 11:57
motion.Resources.3.gif830.00 B2006-04-11 11:57
motion.Resources.4.gif822.00 B2006-04-11 11:57
motion.Resources.5.gif822.00 B2006-04-11 11:57
motion.Resources.6.gif830.00 B2006-04-11 11:57
motion.Resources.7.gif821.00 B2006-04-11 11:57
motion.Resources.8.gif822.00 B2006-04-11 11:57
motion.Resources.9.gif822.00 B2006-04-11 11:57
motion.URLForm.resources269.00 B2007-06-07 20:26
01.96 kB
ResolveAssemblyReference.cache10.44 kB2007-06-07 20:26
01.96 kB
01.96 kB
1.gif828.00 B2006-04-11 11:57
2.gif822.00 B2006-04-11 11:57
3.gif830.00 B2006-04-11 11:57
4.gif822.00 B2006-04-11 11:57
5.gif822.00 B2006-04-11 11:57
6.gif830.00 B2006-04-11 11:57
7.gif821.00 B2006-04-11 11:57
8.gif822.00 B2006-04-11 11:57
9.gif822.00 B2006-04-11 11:57
UnsafeBitmap.cs2.76 kB2007-06-15 14:58
URLForm.cs3.98 kB2006-04-11 11:57
URLForm.resx5.36 kB2006-04-11 11:57
01.96 kB
ByteArrayUtils.cs1.25 kB2006-04-11 11:57
CameraEvents.cs626.00 B2006-04-11 11:57
CaptureDevice.cs8.15 kB2006-04-11 11:57
IVideoSource.cs1.57 kB2006-04-11 11:57
JPEGStream.cs6.89 kB2006-04-11 11:57
MJPEGStream.cs9.12 kB2006-04-11 11:57
VideoFileSource.cs3.45 kB2006-04-11 11:57
VideoStream.cs8.47 kB2006-04-11 11:57
01.96 kB
AForge.dll20.00 kB2007-03-16 19:54
AForge.Imaging.dll108.00 kB2007-03-19 18:42
AForge.Math.dll28.00 kB2007-03-16 19:54
01.96 kB
AssemblyInfo.cs2.37 kB2006-04-11 11:57
AVIReader.cs5.29 kB2006-04-11 11:57
AVIWriter.cs5.59 kB2006-04-11 11:57
01.96 kB
01.96 kB
Tiger.Video.VFW.dll24.00 kB2007-06-13 21:51
Tiger.Video.VFW.pdb27.50 kB2007-06-13 21:51
01.96 kB
Tiger.Video.VFW.dll24.00 kB2007-06-07 20:26
01.96 kB
01.96 kB
01.96 kB
Tiger.Video.VFW.dll24.00 kB2007-06-13 21:51
Tiger.Video.VFW.pdb27.50 kB2007-06-13 21:51
01.96 kB
01.96 kB
Tiger.Video.VFW.dll20.00 kB2007-06-07 18:09
01.96 kB
Tiger.Video.VFW.dll24.00 kB2007-06-07 20:26
vfw.csproj.FileList.txt276.00 B2007-06-15 15:17
vfw.csproj3.55 kB2007-03-16 20:38
Win32.cs9.81 kB2006-04-11 11:57
...
Sponsored links

Camera.cs (805.82 kB)

Need 1 point
Your Point(s)

Your Point isn't enough.

Get point immediately by PayPal

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more point

LOGIN

Don't have an account? Register now
Need any help?
Mail to: support@codeforge.com

切换到中文版?

CodeForge Chinese Version
CodeForge English Version

Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!
OK

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D