public static Image <Bgr, byte> CaptureFOV(PLCComm PLC, HikCamera Camera, Point Anchor, int TimeSleep = 200) { Image <Bgr, byte> img = null; bool ret = PLC.SetXYTop(Anchor.X, Anchor.Y); if (!ret) { return(null); } //PLC.Set_Write_Coordinates_Finish_Top(); ret = PLC.GoFinishTop(); if (!ret) { return(null); } //PLC.Reset_Go_Coordinates_Finish_Top(); Thread.Sleep(TimeSleep); Bitmap bm = Camera.GetOneBitmap(1000); if (bm != null) { using (Image <Bgr, byte> imgDis = new Image <Bgr, byte>(bm)) { img = new Image <Bgr, byte>(imgDis.Size); CvInvoke.Undistort(imgDis, img, mCalibImage.CameraMatrix, mCalibImage.DistCoeffs, mCalibImage.NewCameraMatrix); } } return(img); }
public ICamera Connect(CameraInfo cameraInfo) { if (IsExist(cameraInfo) == false) { return(null); } MyCamera.MV_CC_DEVICE_INFO stDevInfo; if (GetHikDeviceInfo(cameraInfo, out stDevInfo) == false) { return(null); } var device = new MyCamera(); if (MyCamera.MV_OK != device.MV_CC_CreateDevice_NET(ref stDevInfo)) { return(null); } if (MyCamera.MV_OK != device.MV_CC_OpenDevice_NET()) { return(null); } if (cameraInfo.CameraType == ECameraType.GIGE) { int nPacketSize = device.MV_CC_GetOptimalPacketSize_NET(); if (nPacketSize > 0) { if (MyCamera.MV_OK != device.MV_CC_SetIntValue_NET("GevSCPSPacketSize", (uint)nPacketSize)) { return(null); } } else { return(null); } } var info = new MyCamera.MV_IMAGE_BASIC_INFO(); if (MyCamera.MV_OK != device.MV_CC_GetImageInfo_NET(ref info)) { return(null); } var camera = new HikCamera(device, info); if (MyCamera.MV_OK != device.MV_CC_RegisterImageCallBackEx_NET(HikCamera.ImageCallback, GCHandle.ToIntPtr(camera.Handle))) { return(null); } return(camera); }
public static HikCamera GetInstance() { GetCameraNames(); if (mCamera == null) { if (mListCameraName != null) { if (mListCameraName.Length > 0) { mCamera = new HikCamera(0); } } } return(mCamera); }
public static string[] GetCameraNames() { mListCameraName = HikCamera.GetCameraNames(); return(mListCameraName); }