Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public static HikCamera GetInstance()
 {
     GetCameraNames();
     if (mCamera == null)
     {
         if (mListCameraName != null)
         {
             if (mListCameraName.Length > 0)
             {
                 mCamera = new HikCamera(0);
             }
         }
     }
     return(mCamera);
 }
Ejemplo n.º 4
0
 public static string[] GetCameraNames()
 {
     mListCameraName = HikCamera.GetCameraNames();
     return(mListCameraName);
 }