文档库 最新最全的文档下载
当前位置:文档库 › PointGrayAcq 灰点相机

PointGrayAcq 灰点相机

?Imports System.drawing
Imports System.Threading
Imports FlyCapture2Managed
Public Class PointGrayAcqTool
Public GigeCam As New ManagedCamera
Public RawImage As New ManagedImage
Public convertedImage As New ManagedImage
Public BusMgr As ManagedBusManager
Public Guid As ManagedPGRGuid
Public VideoThread As Thread
Public IsGrabbing As Boolean
Public AcqComplete As OnImageGrabbed
Public Delegate Sub OnImageGrabbed(ByVal image As Bitmap, isVideo As Boolean)
Public Sub InitialCamera()
If Not GigeCam Is Nothing Then
CloseAllAutoMode()
GigeCam.StartCapture(AddressOf ImageGrabbed)
End If
End Sub
Public Sub ConnectCam(SerialNum As UInteger)
Guid = New ManagedPGRGuid()
BusMgr = New ManagedBusManager()
Guid = BusMgr.GetCameraFromSerialNumber(SerialNum)
GigeCam.Connect(Guid)
End Sub
Public Sub MannuleAcq()
Try
GigeCam.StopCapture()
Catch
End Try
GigeCam.StartCapture(AddressOf ImageGrabbed)
Const k_softwareTrigger As UInteger = &H62C
Const k_fireVal As UInt32 = &H80000000UI
GigeCam.WriteRegister(k_softwareTrigger, k_fireVal)
End Sub
Public Sub ImageGrabbed(ByVal image As ManagedImage)
image.Convert(PixelFormat.PixelFormatBgr, convertedImage)
AcqComplete.Invoke(convertedImage.bitmap, False)
End Sub
Public Function isConnected() As Boolean
Return GigeCam.IsConnected
End Function
Public Function GetSerialNum() As UInteger
If GigeCam.IsConnected Then
Return GigeCam.GetCameraInfo.serialNumber
Else
Return 00000000
End If
End Function
Private Sub VideoThread_Dowork()
https://www.wendangku.net/doc/956850631.html, = "VideoThread"
While VideoThread.IsAlive And IsGrabbing
If Not GigeCam Is Nothing Then
If GigeCam.IsConnected Then
Try
GigeCam.RetrieveBuffer(RawImage)
RawImage.Convert(PixelFormat.PixelFormatBgr, convertedImage)
AcqComplete.Invoke(convertedImage.bitmap, True)
Catch ex As Exception

End Try
End If
End If
Thread.Sleep(5)
End While
End Sub
Public Sub StartVideoAcq()
SetTriggerModeValid(False)
IsGrabbing = True
GigeCam.StopCapture()
GigeCam.StartCapture()
VideoThread = New Thread(AddressOf VideoThread_Dowork)
VideoThread.IsBackground = True
VideoThread.Start()
End Sub
Private Sub SetTriggerModeValid(Valid As Boolean)
Dim zt As Boolean
zt = GigeCam.GetTriggerModeInfo.onOffSupported
If zt = True Then
Dim mtriggermode As TriggerMode = GigeCam.GetTriggerMode
mtriggermode.
onOff = Valid
GigeCam.SetTriggerMode(mtriggermode)
End If
End Sub
Public Sub StopVideoAcq()
SetTriggerModeValid(True)
IsGrabbing = False
GigeCam.StopCapture()
VideoThread.Abort()
GigeCam.StartCapture(AddressOf ImageGrabbed)
End Sub
Public Function SetTriggerMode(isSoftTrigger As Boolean) As Boolean
Dim trigermode As TriggerMode = New TriggerMode
trigermode.onOff = True
trigermode.mode = 0
trigermode.parameter = 0
trigermode.polarity = 1
If isSoftTrigger Then
trigermode.source = 7 '7为软件

触发
Else
trigermode.source = 0 '0为硬件触发
End If
If IsGrabbing Then
Try
StopVideoAcq()
Catch
End Try
End If
Try
GigeCam.StopCapture()
Catch
End Try
Try
GigeCam.SetTriggerMode(trigermode)
GigeCam.StartCapture(AddressOf ImageGrabbed)
Catch
Return False
End Try
Return True
End Function
Public Function SetExposureTime(ExposureTime As Double) As Boolean
Dim Camperty As CameraProperty = GigeCam.GetProperty(PropertyType.Shutter)
Camperty.autoManualMode = False
Camperty.absControl = True
Camperty.absValue = ExposureTime
Try
GigeCam.SetProperty(Camperty)
Catch
Return False
End Try
Return True
End Function
Private Function CloseAllAutoMode() As Boolean
Dim CampertyExposure As CameraProperty = GigeCam.GetProperty(PropertyType.Shutter)
CampertyExposure.autoManualMode = False
CampertyExposure.absControl = True

Dim CampertyGain As CameraProperty = GigeCam.GetProperty(PropertyType.Gain)
CampertyGain.autoManualMode = False
CampertyGain.absControl = True

Dim CampertyAutoExposure As CameraProperty = GigeCam.GetProperty(PropertyType.AutoExposure)
CampertyAutoExposure.autoManualMode = False
CampertyAutoExposure.onOff = True

Dim CampertyAutoBrightness As CameraProperty = GigeCam.GetProperty(PropertyType.Brightness)
CampertyAutoBrightness.autoManualMode = False
CampertyAutoBrightness.absControl = True

Dim CampertyAutoFrameRate As CameraProperty = GigeCam.GetProperty(PropertyType.FrameRate)
CampertyAutoFrameRate.autoManualMode = False
CampertyAutoFrameRate.onOff = False
Try
GigeCam.SetProperty(CampertyExposure)
GigeCam.SetProperty(CampertyGain)
GigeCam.SetProperty(CampertyAutoExposure)
GigeCam.SetProperty(CampertyAutoBrightness)
GigeCam.SetProperty(CampertyAutoFrameRate)
Catch
Return False
End Try
Return True
End Function
End Cl
ass


相关文档