Advertisement
sau003

Mouse Control

Mar 20th, 2014
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.94 KB | None | 0 0
  1. using Emgu.CV;
  2. using Emgu.CV.UI;
  3. using Emgu.CV.Structure;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading;
  9. using System.Drawing;
  10. using System.Runtime.InteropServices;
  11. using System.Windows.Forms;
  12. using System.ComponentModel;
  13. using System.Data;
  14.  
  15. namespace Vmouse
  16. {
  17.     public partial class MouseControls : Form
  18.     {
  19.         private ParameterSettings ps;
  20.         private Thread T1;
  21.         private Capture _capture;
  22.         private Image<Bgr, Byte> frame;
  23.         private Emgu.CV.CvEnum.FLIP horizontal, vertical;
  24.  
  25.         public MouseControls(ParameterSettings ps)
  26.         {
  27.             this.ps = ps;
  28.             InitializeComponent();
  29.  
  30.             T1 = new Thread(new ThreadStart(operate));
  31.             _capture = new Capture(0);
  32.             frame = _capture.QueryFrame();
  33.             ps.temp1 = new Image<Bgr, Byte>(frame.Size);
  34.             ps.temp2 = new Image<Gray, Byte>(frame.Size);
  35.             ps.cs.initVariables(frame.Width, frame.Height);
  36.             ps.init(frame.Size);
  37.  
  38.             horizontal = Emgu.CV.CvEnum.FLIP.HORIZONTAL;
  39.             vertical = Emgu.CV.CvEnum.FLIP.VERTICAL;
  40.  
  41.             T1.Start();
  42.  
  43.             CheckForIllegalCrossThreadCalls = false;
  44.  
  45.         }
  46.  
  47.         public void operate()
  48.         {
  49.             // pictureBox1.Image = _capture.QueryFrame().Bitmap;
  50.             while (true)
  51.             {
  52.                 Image<Bgr, Byte> f = _capture.QueryFrame().Flip(horizontal).Flip(vertical);
  53.                 Image<Bgr, Byte> fcopy = f.Copy();
  54.                 ps.operate(fcopy);
  55.                 label14.Text = ps.Event_Generated == "LeftUp" ? "yes" : "no";
  56.                 label15.Text = ps.Event_Generated == "LeftDown" ? "yes" : "no";
  57.                 label16.Text = ps.Event_Generated == "RightUp" ? "yes" : "no";
  58.                 label17.Text = ps.Event_Generated == "RightDown" ? "yes" : "no";
  59.  
  60.                 try
  61.                 {
  62.                     label8.Text = ps.current_coordinate.X.ToString();
  63.                     label9.Text = ps.current_coordinate.Y.ToString();
  64.                     label20.Text = ps.dx.ToString();
  65.                     label21.Text = ps.dy.ToString();
  66.                     label24.Text = System.Windows.Forms.Cursor.Position.ToString();
  67.                     label26.Text = ps.Event_Generated;
  68.                 }
  69.                 catch (Exception e)
  70.                 {
  71.                     label18.Text = e.Message;  
  72.                 }
  73.  
  74.                 pictureBox1.Image = f.Resize(pictureBox1.Width, pictureBox1.Height, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR).Bitmap;
  75.                 pictureBox2.Image = fcopy.Resize(pictureBox2.Width, pictureBox2.Height, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR).Bitmap;
  76.             }
  77.  
  78.  
  79.         }
  80.  
  81.  
  82.         private void trackBar1_Scroll(object sender, EventArgs e)
  83.         {
  84.  
  85.         }
  86.  
  87.         private void label8_Click(object sender, EventArgs e)
  88.         {
  89.  
  90.         }
  91.  
  92.         private void label7_Click(object sender, EventArgs e)
  93.         {
  94.  
  95.         }
  96.  
  97.         private void label19_Click(object sender, EventArgs e)
  98.         {
  99.  
  100.         }
  101.  
  102.         private void label22_Click(object sender, EventArgs e)
  103.         {
  104.  
  105.         }
  106.  
  107.         private void toolStripMenuItem2_Click(object sender, EventArgs e)
  108.         {
  109.  
  110.         }
  111.  
  112.         private void button3_Click(object sender, EventArgs e)
  113.         {
  114.  
  115.         }
  116.  
  117.         private void button2_Click(object sender, EventArgs e)
  118.         {
  119.             //parameter settings
  120.  
  121.             ps.Visible = true;
  122.         }
  123.  
  124.         private void MouseControls_FormClosing(object sender, FormClosingEventArgs e)
  125.         {
  126.             if (T1.IsAlive) T1.Abort();
  127.             _capture.Dispose();
  128.         }
  129.  
  130.         private void radioButton1_CheckedChanged(object sender, EventArgs e)
  131.         {
  132.             //flip horizontal
  133.             horizontal = Emgu.CV.CvEnum.FLIP.HORIZONTAL;
  134.         }
  135.  
  136.         private void radioButton2_CheckedChanged(object sender, EventArgs e)
  137.         {
  138.             // original horizotal
  139.             horizontal = Emgu.CV.CvEnum.FLIP.NONE;
  140.         }
  141.  
  142.         private void radioButton3_CheckedChanged(object sender, EventArgs e)
  143.         {
  144.             // flip vertical
  145.             vertical = Emgu.CV.CvEnum.FLIP.VERTICAL;
  146.         }
  147.  
  148.         private void radioButton4_CheckedChanged(object sender, EventArgs e)
  149.         {
  150.             // original vertical
  151.             vertical = Emgu.CV.CvEnum.FLIP.NONE;
  152.         }
  153.  
  154.         private void trackBar2_Scroll(object sender, EventArgs e)
  155.         {
  156.             ps.beta = ((double)trackBar2.Value / 100.0);
  157.             label4.Text = "Sensitivity(beta)" + ((double)trackBar2.Value / 100.0).ToString();
  158.         }
  159.  
  160.         private void trackBar3_Scroll(object sender, EventArgs e)
  161.         {
  162.             ps.alpha = (double)trackBar3.Value / 100000.0;
  163.             label5.Text = "Accuracy(alpha)" + ((double)trackBar3.Value / 100000.0).ToString();
  164.         }
  165.     }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement