Private Sub IcImagingControl1_ImageAvailable_1(ByVal sender As System.Object, ByVal e As TIS.Imaging.ICImagingControl.ImageAvailableEventAr gs) Handles IcImagingControl1.ImageAvailable
Dim Frame As TIS.Imaging.ImageBuffer
Dim indexX As Integer
Dim indexY As Integer
Dim red As Byte
Dim x As Integer
Dim y As Integer
Dim xLaser As Long
Dim yLaser As Long
Dim redPixel As Integer
Frame = IcImagingControl1.ImageActiveBuffer
redPixel = 0
xLaser = 0
yLaser = 0
For y = 0 To Frame.Lines - 1
For x = 0 To Frame.PixelPerLine - 1
'read red value of pixel
indexX = x * 3
indexY = Frame.Lines - y - 1
red = Frame(indexX + 2, indexY)
'recognize red pixel
If red > 100 Then
redPixel = redPixel + 1
xLaser = xLaser + x
yLaser = yLaser + y
'mark recognized pixel to cyan color
Frame(indexX + 2, indexY) = 0
Frame(indexX + 1, indexY) = 255
Frame(indexX + 0, indexY) = 255
End If
Next
Next
'calculate center of laser point
If (redPixel > 0) Then
xLaser = xLaser / redPixel
yLaser = yLaser / redPixel
'mark laser point with a green cross
For x = xLaser - 15 To xLaser + 15 Step 2
If x >= 0 And x < Frame.PixelPerLine And yLaser >= 0 And yLaser < Frame.Lines Then
indexX = x * 3
indexY = Frame.Lines - yLaser - 1
Frame(indexX + 2, indexY) = 0
Frame(indexX + 1, indexY) = 255
Frame(indexX + 0, indexY) = 0
End If
Next
For y = yLaser - 15 To yLaser + 15 Step 2
If xLaser >= 0 And xLaser < Frame.PixelPerLine And y >= 0 And y < Frame.Lines Then
indexX = xLaser * 3
indexY = Frame.Lines - y - 1
Frame(indexX + 2, indexY) = 0
Frame(indexX + 1, indexY) = 255
Frame(indexX + 0, indexY) = 0
End If
Next
End If
'show the frame
IcImagingControl1.DisplayImageBuffer(Frame)
End Sub
Bookmarks