public IdentificationInfo(string lNumber, LicensePlateTypes lType, Color lColor, Image pImage, Image vImage, DateTime iTime) { this.LicensePlateNumber = lNumber; this.LicensePlateType = lType; this.LicensePlateColor = lColor; this.PanoramaImage = pImage; this.VehicleImage = vImage; this.IdentificationTime = iTime; }
public PlateEventArgs(int handle, string ip, string licensePlateNumber, LicensePlateTypes licensePlateType, Color licensePlateColor, Image panoramaImage, Image vehicleImage, DateTime identificationTime) { Handle = handle; IP = ip; LicensePlateNumber = licensePlateNumber; LicensePlateType = licensePlateType; LicensePlateColor = licensePlateColor; PanoramaImage = panoramaImage; VehicleImage = vehicleImage; IdentificationTime = identificationTime; }
private void PlateReceived(int hwnd, string ip, string licensePlateNumber, LicensePlateTypes licensePlateType, Color licensePlateColor, Image pImage, Image vImage, DateTime identificationTime) { if (hwnd == -1) { hwnd = m_connectionCamera.Where(w => w.IP == ip).Select(s => s.CameraHwnd).FirstOrDefault(); } else if (string.IsNullOrEmpty(ip)) { ip = m_connectionCamera.Where(w => w.CameraHwnd == hwnd).Select(s => s.IP).FirstOrDefault(); } PlateEventArgs eventArgs = new PlateEventArgs(hwnd, ip, licensePlateNumber, licensePlateType, licensePlateColor, pImage, vImage, identificationTime); if (PlateReceivedChange != null) { PlateReceivedChange.BeginInvoke(this, eventArgs, null, null); } }
private int PlateReceived(string ip, IntPtr buff, int len) { /* 16KB 用于存储车牌信息足够了 */ IntPtr pPlateResult = IntPtr.Zero; // 车牌特写图临时空间 IntPtr pPlateJpeg = IntPtr.Zero; //获取车牌号 IntPtr pLicensePlate = IntPtr.Zero; //获取车牌颜色 IntPtr pLinceseColor = IntPtr.Zero; try { pPlateResult = Marshal.AllocHGlobal(16 * 1024); pPlateJpeg = Marshal.AllocHGlobal(32 * 1024); int lenght = 0; int iRet = AnShiBaoSDK.IPCSDK_Get_Plate_Info(buff, pPlateResult, ref lenght); if (iRet == 0) { pLicensePlate = Marshal.AllocHGlobal(20); iRet = AnShiBaoSDK.IPCSDK_Get_Plate_License(pPlateResult, pLicensePlate); if (iRet == 0) { //车牌号码 string strLicensePlateNumber = Marshal.PtrToStringAnsi(pLicensePlate); //车牌类型 LicensePlateTypes licensePlateType = LicensePlateTypes.LT_BLUE; //车牌颜色 Color licensePlateColor = Color.Blue; pLinceseColor = Marshal.AllocHGlobal(8); iRet = AnShiBaoSDK.IPCSDK_Get_Plate_Color(pPlateResult, pLinceseColor); if (iRet == 0) { string strPlateColor = Marshal.PtrToStringAnsi(pLinceseColor); switch (strPlateColor) { case "黄": licensePlateColor = Color.Yellow; licensePlateType = LicensePlateTypes.LT_YELLOW; break; case "白": licensePlateColor = Color.White; break; case "黑": licensePlateColor = Color.Black; licensePlateType = LicensePlateTypes.LT_BLACK; break; case "绿": licensePlateColor = Color.Green; break; } } string pImagePath, vImagePath; DateTime now = SetImagePath(strLicensePlateNumber, out pImagePath, out vImagePath); //全景图片 Image panoramaImage = GetCameraImage(buff, len, pImagePath); //车牌图片 Image vehicleImage = null; iRet = AnShiBaoSDK.IPCSDK_Get_Plate_Jpeg(buff, pPlateJpeg, ref lenght); if (iRet == 0) { //获取车牌图片 vehicleImage = GetCameraImage(pPlateJpeg, lenght, vImagePath); } PlateReceviedCallback(-1, ip, strLicensePlateNumber, licensePlateType, licensePlateColor, panoramaImage, vehicleImage, now); } } } catch (Exception ex) { Log.Error(ex.Message, ex); } finally { if (pLinceseColor != IntPtr.Zero) { Marshal.FreeHGlobal(pLinceseColor); } if (pPlateResult != IntPtr.Zero) { Marshal.FreeHGlobal(pPlateResult); } if (pPlateJpeg != IntPtr.Zero) { Marshal.FreeHGlobal(pPlateJpeg); } if (pLicensePlate != IntPtr.Zero) { Marshal.FreeHGlobal(pLicensePlate); } } return(0); }
public EnterVehicleInfo(string userName, string lNumber, LicensePlateTypes lType, Color lColor, DateTime iTime, Image pImage, Image vImage) : base(lNumber, lType, lColor, pImage, vImage, iTime) { this.UserName = UserName; this.UserType = UserType; }
private int PlateReceived(int tHandle, uint uiImageId, ref QianYiSDK.T_ImageUserInfo tImageInfo, ref QianYiSDK.T_PicInfo tPicInfo) { //车辆图像 if (tImageInfo.ucViolateCode != 0) { return(0); } if (tImageInfo.szLprResult == null) { return(0); } try { //车牌号码 string strLicensePlateNumber = Encoding.Default.GetString(tImageInfo.szLprResult).Replace("\0", ""); if (string.IsNullOrEmpty(strLicensePlateNumber)) { return(0); } //车牌类型 LicensePlateTypes licensePlateType = (LicensePlateTypes)tImageInfo.ucLprType; //车牌颜色 Color licensePlateColor = Color.Blue; switch (tImageInfo.ucPlateColor) { case 0: //蓝色 break; case 1: //黄色 licensePlateColor = Color.Yellow; break; case 2: //白色 licensePlateColor = Color.White; break; case 3: //黑色 licensePlateColor = Color.Black; break; case 4: //其它颜色 licensePlateColor = Color.Green; break; case 5: //枚举类型数量,不作为输入参数 break; } string pImagePath, vImagePath; DateTime now = SetImagePath(strLicensePlateNumber, out pImagePath, out vImagePath); //全景图片 Image panoramaImage = GetCameraImage(tPicInfo.ptPanoramaPicBuff, (int)tPicInfo.uiPanoramaPicLen, pImagePath); //车牌图片 Image vehicleImage = GetCameraImage(tPicInfo.ptVehiclePicBuff, (int)tPicInfo.uiVehiclePicLen, vImagePath); PlateReceviedCallback(tHandle, string.Empty, strLicensePlateNumber, licensePlateType, licensePlateColor, panoramaImage, vehicleImage, now); } catch (Exception ex) { Log.Error(ex.Message, ex); } return(0); }
private int PlateReceived(int handle, IntPtr pUserData, IntPtr pResult, uint uNumPlates, HuoYanSDK.VZ_LPRC_RESULT_TYPE eResultType, IntPtr pImgFull, IntPtr pImgPlateClip) { try { //获取车牌识别结果信息 HuoYanSDK.TH_PlateResult plateResult; if (eResultType != HuoYanSDK.VZ_LPRC_RESULT_TYPE.VZ_LPRC_RESULT_REALTIME) { plateResult = (HuoYanSDK.TH_PlateResult)Marshal.PtrToStructure(pResult, typeof(HuoYanSDK.TH_PlateResult)); //车牌号码 string strLicensePlateNumber = new string(plateResult.license).Replace("\0", ""); if (string.IsNullOrEmpty(strLicensePlateNumber)) { return(0); } //车辆类型 LicensePlateTypes licensePlateType = (LicensePlateTypes)plateResult.nType; //车牌颜色 Color licensePlateColor = Color.Blue; switch (plateResult.nColor) { case 0: //未知 break; case 1: //蓝色 break; case 2: //黄色 licensePlateColor = Color.Yellow; break; case 3: //白色 licensePlateColor = Color.White; break; case 4: //黑色 licensePlateColor = Color.Black; break; case 5: //绿色 licensePlateColor = Color.Green; break; } string pImagePath, vImagePath; DateTime now = SetImagePath(strLicensePlateNumber, out pImagePath, out vImagePath); HuoYanSDK.VzLPRClient_ImageSaveToJpeg(pImgFull, pImagePath, 100); HuoYanSDK.VzLPRClient_ImageSaveToJpeg(pImgPlateClip, vImagePath, 100); Image panoramaImage = new Bitmap(pImagePath); Image vehicleImage = new Bitmap(vImagePath); PlateReceviedCallback(handle, string.Empty, strLicensePlateNumber, licensePlateType, licensePlateColor, panoramaImage, vehicleImage, now); } } catch (Exception ex) { Log.Error(ex.Message, ex); } return(0); }
public virtual string VehicleTypeToStr(LicensePlateTypes licensePlateType) { string strType = "未知"; switch (licensePlateType) { case LicensePlateTypes.LT_UNKNOWN: break; case LicensePlateTypes.LT_BLUE: strType = "蓝牌小汽车"; break; case LicensePlateTypes.LT_BLACK: strType = "黑牌小汽车"; break; case LicensePlateTypes.LT_YELLOW: strType = "单排黄牌"; break; case LicensePlateTypes.LT_YELLOW2: strType = "双排黄牌"; break; case LicensePlateTypes.LT_POLICE: strType = "警车车牌"; break; case LicensePlateTypes.LT_ARMPOL: strType = "武警车牌"; break; case LicensePlateTypes.LT_ARMPOL2: strType = "双排武警车牌"; break; case LicensePlateTypes.LT_INDIVI: strType = "个性化车牌"; break; case LicensePlateTypes.LT_ARMY: strType = "单排军车牌"; break; case LicensePlateTypes.LT_ARMY2: strType = "双排军车牌"; break; case LicensePlateTypes.LT_EMBASSY: strType = "使馆车牌"; break; case LicensePlateTypes.LT_HONGKONG: strType = "香港进出中国车牌"; break; case LicensePlateTypes.LT_TRACTOR: strType = "农用车牌"; break; case LicensePlateTypes.LT_COACH: strType = "教练车牌"; break; case LicensePlateTypes.LT_MACAO: strType = "澳门进出中国车牌"; break; } return(strType); }