Advertisement
Robomatics

Visual Cursor 2

Jan 7th, 2013
4,902
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 25.62 KB | None | 1 0
  1. Public Class Form1
  2.  
  3.     Dim mousecontrol As Boolean
  4.     Dim myPen1 As New System.Drawing.Pen(System.Drawing.Color.White, 2)
  5.     Dim myPen2 As New System.Drawing.Pen(System.Drawing.Color.Yellow, 2)
  6.     Dim myPen3 As New System.Drawing.Pen(System.Drawing.Color.Magenta, 2)
  7.     Dim myPen4 As New System.Drawing.Pen(System.Drawing.Color.Cyan, 2)
  8.     Dim myPen5 As New System.Drawing.Pen(System.Drawing.Color.Green, 2)
  9.     Dim myPen6 As New System.Drawing.Pen(System.Drawing.Color.Red, 2)
  10.     Dim myPen7 As New System.Drawing.Pen(System.Drawing.Color.Blue, 2)
  11.     Dim Color1UpperR As Integer
  12.     Dim Color1LowerR As Integer
  13.     Dim Color1UpperG As Integer
  14.     Dim Color1LowerG As Integer
  15.     Dim Color1UpperB As Integer
  16.     Dim Color1LowerB As Integer
  17.     Dim Color2UpperR As Integer
  18.     Dim Color2LowerR As Integer
  19.     Dim Color2UpperG As Integer
  20.     Dim Color2LowerG As Integer
  21.     Dim Color2UpperB As Integer
  22.     Dim Color2LowerB As Integer
  23.     Dim Color3UpperR As Integer
  24.     Dim Color3LowerR As Integer
  25.     Dim Color3UpperG As Integer
  26.     Dim Color3LowerG As Integer
  27.     Dim Color3UpperB As Integer
  28.     Dim Color3LowerB As Integer
  29.     Dim findcolorPixel As Drawing.Color
  30.     Dim Color1X(640) As Integer
  31.     Dim Color1Y(480) As Integer
  32.     Dim Color2X(640) As Integer
  33.     Dim Color2Y(480) As Integer
  34.     Dim Color3X(640) As Integer
  35.     Dim Color3Y(480) As Integer
  36.     Dim NewMousepointX As Integer
  37.     Dim NewMousepointY As Integer
  38.     Dim color1xavgfinal As Integer
  39.     Dim color1yavgfinal As Integer
  40.     Dim color2xavgfinal As Integer
  41.     Dim color2yavgfinal As Integer
  42.     Dim color3xavgfinal As Integer
  43.     Dim color3yavgfinal As Integer
  44.     Dim allavgX As Integer
  45.     Dim allavgY As Integer
  46.     Dim cameraselect As Integer = 0
  47.     Dim invertX As Boolean
  48.     Dim draw As Boolean = True
  49.  
  50.     Dim pic As New Drawing.Bitmap(640, 480)
  51.     'Webcam
  52.     Public Touchless As New TouchlessLib.TouchlessMgr
  53.     Public Camera1 As TouchlessLib.Camera = Touchless.Cameras.ElementAt(0)
  54.     'Mouse commands
  55.     Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
  56.     Public Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
  57.     Public Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
  58.     'Global Keyboard
  59.     Public Const VK_CONTROL As Integer = &H11
  60.     Public Const VK_Back As Integer = &H11
  61.     Public Const VK_Forward As Integer = &H1B
  62.     Public Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Integer
  63.     Public Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As IntPtr, ByVal id As Integer) As Integer
  64.     Public Const WM_HOTKEY As Integer = &H312
  65.  
  66.  
  67.     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  68.         Try
  69.  
  70.             pic = Touchless.CurrentCamera.GetCurrentImage
  71.  
  72.             Call FindCycle()
  73.  
  74.             Dim GFX6 As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(pic)
  75.  
  76.             If draw = True Then
  77.                 For i = 1 To 640
  78.                     GFX6.DrawLine(myPen5, i - 1, Color1X(i - 1), i, Color1X(i))
  79.                 Next
  80.                 For i = 1 To 480
  81.                     GFX6.DrawLine(myPen5, Color1Y(i - 1), i - 1, Color1Y(i), i)
  82.                 Next
  83.  
  84.                 For i = 1 To 640
  85.                     GFX6.DrawLine(myPen6, i - 1, Color2X(i - 1), i, Color2X(i))
  86.                 Next
  87.                 For i = 1 To 480
  88.                     GFX6.DrawLine(myPen6, Color2Y(i - 1), i - 1, Color2Y(i), i)
  89.                 Next
  90.  
  91.                 For i = 1 To 640
  92.                     GFX6.DrawLine(myPen7, i - 1, Color3X(i - 1), i, Color3X(i))
  93.                 Next
  94.                 For i = 1 To 480
  95.                     GFX6.DrawLine(myPen7, Color3Y(i - 1), i - 1, Color3Y(i), i)
  96.                 Next
  97.             End If
  98.  
  99.             'Color 1 Math
  100.             '==========================================
  101.             Dim Color1MaxX As Integer = 0
  102.             Dim color1maxXI As Integer = 0
  103.             Dim color1maxY As Integer = 0
  104.             Dim color1maxYI As Integer = 0
  105.             Dim color1avgxloc(640) As Integer
  106.             Dim color1avgyloc(640) As Integer
  107.  
  108.             For i = 0 To 639
  109.                 If Color1X(i) > Color1MaxX Then
  110.                     Color1MaxX = Color1X(i)
  111.                     color1maxXI = i
  112.                 End If
  113.             Next
  114.             For i = 0 To 479
  115.                 If Color1Y(i) > color1maxY Then
  116.                     color1maxY = Color1Y(i)
  117.                     color1maxYI = i
  118.                 End If
  119.             Next
  120.  
  121.             Dim color1xmaxlower As Integer
  122.             color1xmaxlower = Color1MaxX * 0.7
  123.             Dim subcount As Integer = 0
  124.             For i = 0 To 639
  125.                 If Color1X(i) > color1xmaxlower Then
  126.                     color1avgxloc(subcount) = i
  127.                     subcount = subcount + 1
  128.                 End If
  129.             Next
  130.             Dim color1xavg As Integer
  131.             For i = 0 To subcount
  132.                 color1xavg = color1xavg + color1avgxloc(i)
  133.             Next
  134.             If subcount <> 0 Then
  135.                 color1xavgfinal = color1xavg \ subcount
  136.             End If
  137.  
  138.             Dim color1ymaxlower As Integer
  139.             color1ymaxlower = color1maxY * 0.7
  140.             subcount = 0
  141.             For i = 0 To 479
  142.                 If Color1Y(i) > color1ymaxlower Then
  143.                     color1avgyloc(subcount) = i
  144.                     subcount = subcount + 1
  145.                 End If
  146.             Next
  147.             Dim color1yavg As Integer
  148.             For i = 0 To subcount
  149.                 color1yavg = color1yavg + color1avgyloc(i)
  150.             Next
  151.             If subcount <> 0 Then
  152.                 color1yavgfinal = color1yavg \ subcount
  153.             End If
  154.  
  155.             If draw = True Then
  156.                 GFX6.DrawLine(myPen5, 640, 0, color1xavgfinal, color1yavgfinal)
  157.             End If
  158.  
  159.             'Color 2 Math
  160.             '==========================================
  161.             Dim Color2MaxX As Integer = 0
  162.             Dim color2maxXI As Integer = 0
  163.             Dim color2maxY As Integer = 0
  164.             Dim color2maxYI As Integer = 0
  165.             Dim color2avgxloc(640) As Integer
  166.             Dim color2avgyloc(640) As Integer
  167.  
  168.             For i = 0 To 639
  169.                 If Color2X(i) > Color2MaxX Then
  170.                     Color2MaxX = Color2X(i)
  171.                     color2maxXI = i
  172.                 End If
  173.             Next
  174.             For i = 0 To 479
  175.                 If Color2Y(i) > color2maxY Then
  176.                     color2maxY = Color2Y(i)
  177.                     color2maxYI = i
  178.                 End If
  179.             Next
  180.  
  181.             Dim color2xmaxlower As Integer
  182.             color2xmaxlower = Color2MaxX * 0.7
  183.             subcount = 0
  184.             For i = 0 To 639
  185.                 If Color2X(i) > color2xmaxlower Then
  186.                     color2avgxloc(subcount) = i
  187.                     subcount = subcount + 1
  188.                 End If
  189.             Next
  190.             Dim color2xavg As Integer
  191.             For i = 0 To subcount
  192.                 color2xavg = color2xavg + color2avgxloc(i)
  193.             Next
  194.             If subcount <> 0 Then
  195.                 color2xavgfinal = color2xavg \ subcount
  196.             End If
  197.  
  198.             Dim color2ymaxlower As Integer
  199.             color2ymaxlower = color2maxY * 0.7
  200.             subcount = 0
  201.             For i = 0 To 479
  202.                 If Color2Y(i) > color2ymaxlower Then
  203.                     color2avgyloc(subcount) = i
  204.                     subcount = subcount + 1
  205.                 End If
  206.             Next
  207.             Dim color2yavg As Integer
  208.             For i = 0 To subcount
  209.                 color2yavg = color2yavg + color2avgyloc(i)
  210.             Next
  211.             If subcount <> 0 Then
  212.                 color2yavgfinal = color2yavg \ subcount
  213.             End If
  214.  
  215.             If draw = True Then
  216.                 GFX6.DrawLine(myPen6, 640, 0, color2xavgfinal, color2yavgfinal)
  217.             End If
  218.  
  219.             'Color 3 Math
  220.             '==========================================
  221.             Dim color3MaxX As Integer = 0
  222.             Dim color3maxXI As Integer = 0
  223.             Dim color3maxY As Integer = 0
  224.             Dim color3maxYI As Integer = 0
  225.             Dim color3avgxloc(640) As Integer
  226.             Dim color3avgyloc(640) As Integer
  227.  
  228.             For i = 0 To 639
  229.                 If Color3X(i) > color3MaxX Then
  230.                     color3MaxX = Color3X(i)
  231.                     color3maxXI = i
  232.                 End If
  233.             Next
  234.             For i = 0 To 479
  235.                 If Color3Y(i) > color3maxY Then
  236.                     color3maxY = Color3Y(i)
  237.                     color3maxYI = i
  238.                 End If
  239.             Next
  240.  
  241.             Dim color3xmaxlower As Integer
  242.             color3xmaxlower = color3MaxX * 0.5
  243.             subcount = 0
  244.             For i = 0 To 639
  245.                 If Color3X(i) > color3xmaxlower Then
  246.                     color3avgxloc(subcount) = i
  247.                     subcount = subcount + 1
  248.                 End If
  249.             Next
  250.             Dim color3xavg As Integer
  251.             For i = 0 To subcount
  252.                 color3xavg = color3xavg + color3avgxloc(i)
  253.             Next
  254.             If subcount <> 0 Then
  255.                 color3xavgfinal = color3xavg \ subcount
  256.             End If
  257.  
  258.             Dim color3ymaxlower As Integer
  259.             color3ymaxlower = color3maxY * 0.5
  260.             subcount = 0
  261.             For i = 0 To 479
  262.                 If Color3Y(i) > color3ymaxlower Then
  263.                     color3avgyloc(subcount) = i
  264.                     subcount = subcount + 1
  265.                 End If
  266.             Next
  267.             Dim color3yavg As Integer
  268.             For i = 0 To subcount
  269.                 color3yavg = color3yavg + color3avgyloc(i)
  270.             Next
  271.             If subcount <> 0 Then
  272.                 color3yavgfinal = color3yavg \ subcount
  273.             End If
  274.  
  275.             If draw = True Then
  276.                 GFX6.DrawLine(myPen7, 640, 0, color3xavgfinal, color3yavgfinal)
  277.             End If
  278.  
  279.             'Color Amount
  280.             '==========================================
  281.             Dim color1amount As Integer
  282.             Dim color2amount As Integer
  283.             Dim color3amount As Integer
  284.             For i = 0 To 639
  285.                 color1amount = color1amount + Color1X(i)
  286.                 color2amount = color2amount + Color2X(i)
  287.                 color3amount = color3amount + Color3X(i)
  288.             Next
  289.  
  290.             If color1amount > color2amount And color1amount > color3amount Then
  291.                 RadioButton1.BackColor = Color.Green
  292.                 RadioButton2.BackColor = Color.Transparent
  293.                 RadioButton3.BackColor = Color.Transparent
  294.             End If
  295.             If color2amount > color1amount And color2amount > color3amount Then
  296.                 RadioButton1.BackColor = Color.Transparent
  297.                 RadioButton2.BackColor = Color.Red
  298.                 RadioButton3.BackColor = Color.Transparent
  299.             End If
  300.             If color3amount > color1amount And color3amount > color2amount Then
  301.                 RadioButton1.BackColor = Color.Transparent
  302.                 RadioButton2.BackColor = Color.Transparent
  303.                 RadioButton3.BackColor = Color.Blue
  304.             End If
  305.  
  306.             'Averaging and throwing out low finds
  307.             '==========================================
  308.  
  309.             If color1amount <> 0 And color2amount <> 0 And color3amount <> 0 Then
  310.                 allavgX = (color1xavgfinal + color2xavgfinal + color3xavgfinal) / 3
  311.                 allavgY = (color1yavgfinal + color2yavgfinal + color3yavgfinal) / 3
  312.             End If
  313.             If color1amount = 0 Or (color1amount < 100 And color2amount > 100 And color3amount > 100) Then
  314.                 allavgX = (color2xavgfinal + color3xavgfinal) / 2
  315.                 allavgY = (color2yavgfinal + color3yavgfinal) / 2
  316.             End If
  317.             If color2amount = 0 Or (color1amount > 100 And color2amount < 100 And color3amount > 100) Then
  318.                 allavgX = (color1xavgfinal + color3xavgfinal) / 2
  319.                 allavgY = (color1yavgfinal + color3yavgfinal) / 2
  320.             End If
  321.             If color3amount = 0 Or (color1amount > 100 And color2amount > 100 And color3amount < 100) Then
  322.                 allavgX = (color1xavgfinal + color2xavgfinal) / 2
  323.                 allavgY = (color1yavgfinal + color2yavgfinal) / 2
  324.             End If
  325.             If color1amount = 0 And color2amount = 0 And color3amount <> 0 Then
  326.                 allavgX = color3xavgfinal
  327.                 allavgY = color3yavgfinal
  328.             End If
  329.             If color1amount = 0 And color2amount <> 0 And color3amount = 0 Then
  330.                 allavgX = color2xavgfinal
  331.                 allavgY = color2yavgfinal
  332.             End If
  333.             If color1amount <> 0 And color2amount = 0 And color3amount = 0 Then
  334.                 allavgX = color1xavgfinal
  335.                 allavgY = color1yavgfinal
  336.             End If
  337.             If color1amount = 0 And color2amount = 0 And color3amount = 0 Then
  338.                 allavgX = (color1xavgfinal + color2xavgfinal + color3xavgfinal) / 3
  339.                 allavgY = (color1yavgfinal + color2yavgfinal + color3yavgfinal) / 3
  340.             End If
  341.  
  342.  
  343.  
  344.  
  345.             'Line Drawing and coloring
  346.             '==========================================
  347.  
  348.             If draw = True Then
  349.                 'White Triangle
  350.                 GFX6.DrawLine(myPen1, color1xavgfinal, color1yavgfinal, color2xavgfinal, color2yavgfinal)
  351.                 GFX6.DrawLine(myPen1, color2xavgfinal, color2yavgfinal, color3xavgfinal, color3yavgfinal)
  352.                 GFX6.DrawLine(myPen1, color1xavgfinal, color1yavgfinal, color3xavgfinal, color3yavgfinal)
  353.  
  354.                 'Rectile
  355.                 GFX6.DrawLine(myPen1, allavgX - 10, allavgY, allavgX + 10, allavgY)
  356.                 GFX6.DrawLine(myPen1, allavgX, allavgY - 10, allavgX, allavgY + 10)
  357.  
  358.                 PictureBox1.Image = pic
  359.             End If
  360.  
  361.  
  362.             ''Find Angle
  363.             'Dim temptanx As Double
  364.             'Dim temptany As Double
  365.             'Dim tempangle1 As Double
  366.             'Dim tempangle2 As Double
  367.             'Dim FoundAngle As Integer
  368.  
  369.             'temptanx = (foundcenter.X - foundcenter2.X)
  370.             'temptany = (foundcenter.Y - foundcenter2.Y)
  371.             'If temptanx <> 0 And temptany <> 0 Then
  372.             '    tempangle1 = Math.Atan2(temptany, temptanx)
  373.             '    tempangle2 = (tempangle1 * (180 / Math.PI)) + 180
  374.  
  375.             'End If
  376.             'FoundAngle = tempangle2
  377.             'TextBox1.Text = foundcenter.ToString & " " & foundcenter2.ToString
  378.             'TextBox2.Text = FoundAngle.ToString
  379.  
  380.             'Mouse Control
  381.             '==========================================
  382.  
  383.             Dim MousepointX As Integer
  384.             Dim MousepointY As Integer
  385.             MousepointX = MousePosition.X
  386.             MousepointY = MousePosition.Y
  387.             Dim OffsetX As Integer
  388.             Dim OffsetY As Integer
  389.             Dim XScale As Decimal
  390.             Dim YScale As Decimal
  391.             Dim speedx As Integer
  392.             Dim speedy As Integer
  393.             YScale = My.Computer.Screen.Bounds.Height / 480
  394.             XScale = My.Computer.Screen.Bounds.Width / 640
  395.  
  396.             If invertX = True Then
  397.                 OffsetX = (Math.Abs(640 - allavgX) * XScale) - MousepointX
  398.             End If
  399.             If invertX = False Then
  400.                 OffsetX = (allavgX * XScale) - MousepointX
  401.             End If
  402.             OffsetY = (allavgY * YScale) - MousepointY
  403.  
  404.             If mousecontrol = True Then
  405.                 speedx = Math.Abs(OffsetX) * 0.2
  406.                 speedy = Math.Abs(OffsetY) * 0.2
  407.  
  408.                 If OffsetX > 0 Then
  409.                     NewMousepointX = NewMousepointX + speedx
  410.                 End If
  411.                 If OffsetX < 0 Then
  412.                     NewMousepointX = NewMousepointX - speedx
  413.                 End If
  414.                 If OffsetY > 0 Then
  415.                     NewMousepointY = NewMousepointY + speedy
  416.                 End If
  417.                 If OffsetY < 0 Then
  418.                     NewMousepointY = NewMousepointY - speedy
  419.                 End If
  420.  
  421.  
  422.                 Me.Cursor = New Cursor(Cursor.Current.Handle)
  423.                 Cursor.Position = New Point(NewMousepointX, NewMousepointY)
  424.             End If
  425.  
  426.         Catch ex As Exception
  427.  
  428.         End Try
  429.  
  430.     End Sub
  431.  
  432.     Private Sub FindCycle()
  433.         Try
  434.  
  435.             Dim rect As New Rectangle(0, 0, 640, 480)
  436.         Dim bmpData As System.Drawing.Imaging.BitmapData = pic.LockBits(rect, _
  437.             Drawing.Imaging.ImageLockMode.ReadWrite, pic.PixelFormat)
  438.         Dim ptr As IntPtr = bmpData.Scan0
  439.         Dim bytes As Integer = bmpData.Stride * 480
  440.         Dim rgbValues(bytes - 1) As Byte
  441.         System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes)
  442.  
  443.         Dim secondcounter As Integer
  444.         Dim tempred As Integer
  445.         Dim tempblue As Integer
  446.         Dim tempgreen As Integer
  447.         Dim tempalpha As Integer
  448.         Dim yesno1 As Boolean
  449.         Dim tempx As Integer
  450.         Dim tempy As Integer
  451.  
  452.         secondcounter = 0
  453.         yesno1 = True
  454.  
  455.  
  456.             Array.Clear(Color1X, 0, Color1X.Length)
  457.             Array.Clear(Color1Y, 0, Color1Y.Length)
  458.             Array.Clear(Color2X, 0, Color2X.Length)
  459.             Array.Clear(Color2Y, 0, Color2Y.Length)
  460.             Array.Clear(Color3X, 0, Color3X.Length)
  461.             Array.Clear(Color3Y, 0, Color3Y.Length)
  462.  
  463.         While secondcounter < rgbValues.Length
  464.             tempblue = rgbValues(secondcounter)
  465.             tempgreen = rgbValues(secondcounter + 1)
  466.             tempred = rgbValues(secondcounter + 2)
  467.             tempalpha = rgbValues(secondcounter + 3)
  468.             tempalpha = 255
  469.  
  470.             tempy = ((secondcounter * 0.25) / 640)
  471.             tempx = (secondcounter * 0.25) - (tempy * 640)
  472.             If tempx < 0 Then
  473.                 tempx = tempx + 640
  474.             End If
  475.  
  476.  
  477.             If tempred >= Color1LowerR And tempred <= Color1UpperR And tempgreen >= Color1LowerG And tempgreen <= Color1UpperG And tempblue >= Color1LowerB And tempblue <= Color1UpperB Then
  478.                 If yesno1 = True Then
  479.                         tempgreen = 255
  480.                         tempred = 0
  481.                         tempblue = 0
  482.                 End If
  483.                     Color1X(tempx) = Color1X(tempx) + 1
  484.                     Color1Y(tempy) = Color1Y(tempy) + 1
  485.             End If
  486.  
  487.                 If tempred >= Color2LowerR And tempred <= Color2UpperR And tempgreen >= Color2LowerG And tempgreen <= Color2UpperG And tempblue >= Color2LowerB And tempblue <= Color2UpperB Then
  488.                     If yesno1 = True Then
  489.                         tempgreen = 0
  490.                         tempred = 255
  491.                         tempblue = 0
  492.                     End If
  493.                     Color2X(tempx) = Color2X(tempx) + 1
  494.                     Color2Y(tempy) = Color2Y(tempy) + 1
  495.                 End If
  496.  
  497.                 If tempred >= Color3LowerR And tempred <= Color3UpperR And tempgreen >= Color3LowerG And tempgreen <= Color3UpperG And tempblue >= Color3LowerB And tempblue <= Color3UpperB Then
  498.                     If yesno1 = True Then
  499.                         tempgreen = 0
  500.                         tempred = 0
  501.                         tempblue = 255
  502.                     End If
  503.                     Color3X(tempx) = Color3X(tempx) + 1
  504.                     Color3Y(tempy) = Color3Y(tempy) + 1
  505.                 End If
  506.  
  507.             rgbValues(secondcounter) = tempblue
  508.             rgbValues(secondcounter + 1) = tempgreen
  509.             rgbValues(secondcounter + 2) = tempred
  510.             rgbValues(secondcounter + 3) = tempalpha
  511.  
  512.             secondcounter = secondcounter + 4
  513.         End While
  514.         ' Copy the RGB values back to the bitmap
  515.         System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes)
  516.  
  517.         ' Unlock the bits.
  518.             pic.UnlockBits(bmpData)
  519.  
  520.         Catch ex As Exception
  521.  
  522.         End Try
  523.  
  524.     End Sub
  525.  
  526.     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  527.         Try
  528.  
  529.        
  530.         Touchless.CurrentCamera = Camera1
  531.         Touchless.CurrentCamera.CaptureHeight = 480
  532.         Touchless.CurrentCamera.CaptureWidth = 640
  533.  
  534.         RegisterHotKey(Me.Handle, 9, 0, VK_Back)
  535.         RegisterHotKey(Me.Handle, 10, 0, VK_Forward)
  536.  
  537.         Catch ex As Exception
  538.             MsgBox("No Webcam Found. Install or plug in camera and reload program")
  539.             Me.Close()
  540.         End Try
  541.     End Sub
  542.  
  543.     Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
  544.  
  545.         Dim picturemousexpos As Integer
  546.         Dim picturemouseypos As Integer
  547.         Dim picturemouse As System.Drawing.Point
  548.         picturemousexpos = (((MousePosition.X - Me.Location.X) - PictureBox1.Location.X) - 4)
  549.         picturemouseypos = ((MousePosition.Y - Me.Location.Y) - 30)
  550.         picturemouse.X = picturemousexpos
  551.         picturemouse.Y = picturemouseypos
  552.  
  553.         If picturemousexpos >= 0 And picturemousexpos <= 639 And picturemouseypos >= 0 And picturemouseypos <= 479 Then
  554.             findcolorPixel = pic.GetPixel(picturemousexpos, picturemouseypos)
  555.         End If
  556.  
  557.         If RadioButton1.Checked = True Then
  558.             Color1UpperR = findcolorPixel.R + TrackBar1.Value
  559.             Color1UpperG = findcolorPixel.G + TrackBar1.Value
  560.             Color1UpperB = findcolorPixel.B + TrackBar1.Value
  561.             Color1LowerR = findcolorPixel.R - TrackBar1.Value
  562.             Color1LowerG = findcolorPixel.G - TrackBar1.Value
  563.             Color1LowerB = findcolorPixel.B - TrackBar1.Value
  564.         End If
  565.         If RadioButton2.Checked = True Then
  566.             Color2UpperR = findcolorPixel.R + TrackBar1.Value
  567.             Color2UpperG = findcolorPixel.G + TrackBar1.Value
  568.             Color2UpperB = findcolorPixel.B + TrackBar1.Value
  569.             Color2LowerR = findcolorPixel.R - TrackBar1.Value
  570.             Color2LowerG = findcolorPixel.G - TrackBar1.Value
  571.             Color2LowerB = findcolorPixel.B - TrackBar1.Value
  572.         End If
  573.         If RadioButton3.Checked = True Then
  574.             Color3UpperR = findcolorPixel.R + TrackBar1.Value
  575.             Color3UpperG = findcolorPixel.G + TrackBar1.Value
  576.             Color3UpperB = findcolorPixel.B + TrackBar1.Value
  577.             Color3LowerR = findcolorPixel.R - TrackBar1.Value
  578.             Color3LowerG = findcolorPixel.G - TrackBar1.Value
  579.             Color3LowerB = findcolorPixel.B - TrackBar1.Value
  580.         End If
  581.  
  582.     End Sub
  583.  
  584.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  585.         If mousecontrol = False Then
  586.             mousecontrol = True
  587.             Button1.ForeColor = Color.Red
  588.         Else
  589.             mousecontrol = False
  590.             Button1.ForeColor = Color.Black
  591.         End If
  592.     End Sub
  593.  
  594.     Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
  595.  
  596.         If m.Msg = WM_HOTKEY Then
  597.             Dim id As IntPtr = m.WParam
  598.             Select Case (id.ToString)
  599.                 Case "9"
  600.                     If mousecontrol = True Then
  601.                         mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
  602.                         mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
  603.                     End If
  604.                 Case "10"
  605.                     mousecontrol = False
  606.                     Button1.ForeColor = Color.Black
  607.             End Select
  608.         End If
  609.  
  610.         MyBase.WndProc(m) 'Never Forget This
  611.  
  612.     End Sub
  613.  
  614.     Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
  615.  
  616.         UnregisterHotKey(Me.Handle, 9) 'Remember to unregister the hotkey
  617.         UnregisterHotKey(Me.Handle, 10) 'Remember to unregister the hotkey
  618.     End Sub
  619.  
  620.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  621.         Color1UpperR = 0
  622.         Color1LowerR = 0
  623.         Color1UpperG = 0
  624.         Color1LowerG = 0
  625.         Color1UpperB = 0
  626.         Color1LowerB = 0
  627.         Color2UpperR = 0
  628.         Color2LowerR = 0
  629.         Color2UpperG = 0
  630.         Color2LowerG = 0
  631.         Color2UpperB = 0
  632.         Color2LowerB = 0
  633.         Color3UpperR = 0
  634.         Color3LowerR = 0
  635.         Color3UpperG = 0
  636.         Color3LowerG = 0
  637.         Color3UpperB = 0
  638.         Color3LowerB = 0
  639.     End Sub
  640.  
  641.     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  642.  
  643.         If cameraselect = 0 Then
  644.             'Touchless.CurrentCamera = Camera2
  645.             Touchless.CurrentCamera.CaptureHeight = 480
  646.             Touchless.CurrentCamera.CaptureWidth = 640
  647.             cameraselect = 1
  648.         Else
  649.             Touchless.CurrentCamera = Camera1
  650.             Touchless.CurrentCamera.CaptureHeight = 480
  651.             Touchless.CurrentCamera.CaptureWidth = 640
  652.             cameraselect = 0
  653.         End If
  654.  
  655.     End Sub
  656.  
  657.     Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
  658.  
  659.         If CheckBox1.Checked = False Then
  660.             invertX = False
  661.         Else
  662.             invertX = True
  663.         End If
  664.  
  665.     End Sub
  666.  
  667.     Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
  668.  
  669.         If CheckBox2.Checked = False Then
  670.             draw = False
  671.         Else
  672.             draw = True
  673.         End If
  674.     End Sub
  675. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement