一、打开摄像头后台,在“高级网络-HTTP推送”中设置服务器地址(可公网域名,也可以是本地服务器IP),并填写接收、执行的php文件路径,(如:/plateresult.php):
二、将该php文件放置服务器对应的位置,确定“服务器地址+地址”可以正常访问,php内容如下:
<?php
$doc = file_get_contents("php://input");
$fp = fopen("api.json", "w");
if(!$fp){
return;
}
$flag=fwrite($fp, $doc);
//$flag=fwrite($fp, $jsondecode['AlarmInfoPlate']['result']['PlateResult']['imagePath']);
if(!$flag)
{
fclose($fp);
return;
}
fclose($fp);
$jsondecode = json_decode($doc,true);
if($jsondecode == null){
return;
}
// 小图片
if(isset($jsondecode['AlarmInfoPlate']['result']['PlateResult']['imageFragmentFile']))
{
$small_image = $jsondecode['AlarmInfoPlate']['result']['PlateResult']['imageFragmentFile'];
if( $small_image != null){
$fs_image = fopen("smallimage.jpg", "w");
if(!$fs_image){
return;
}
$simage_decoded = base64_decode($small_image);
$flag2=fwrite($fs_image, $simage_decoded);
fclose($fs_image);
}
}
// 大图片
if(isset($jsondecode['AlarmInfoPlate']['result']['PlateResult']['imageFile']))
{
$image = $jsondecode['AlarmInfoPlate']['result']['PlateResult']['imageFile'];
if( $image != null){
$fp_image = fopen("image.jpg", "w");
if(!$fp_image){
return;
}
$image_decoded = base64_decode($image);
$flag=fwrite($fp_image, $image_decoded);
fclose($fp_image);
}
}
//车牌号
$license = $jsondecode['AlarmInfoPlate']['result']['PlateResult']['license'];
$fp_license = fopen("license.txt", "w");
if($fp_license )
{
$flag=fwrite($fp_license , $license );
fclose($fp_license);
}
//车颜色
$colorType = $jsondecode['AlarmInfoPlate']['result']['PlateResult']['colorType'];
$fp_colorType = fopen("yanshe.txt", "w");
if($fp_colorType )
{
$flag=fwrite($fp_colorType , $colorType );
fclose($fp_colorType);
}
// 发送开闸命令
echo '{"Response_AlarmInfoPlate":{"info":"ok","content":"...","is_pay":"true"}}';
?>
当摄像被触发后,会自动生成一个api.json文件,该文件内容键值梳理如下:
{
//浩哥说:每进一辆车,监控均会通过http协议发送(更新)该json内容(不含//说明部分):
"AlarmInfoPlate": {
"channel": 0,
"deviceName": "1号机",//摄像头名称
"ipaddr": "10.1.1.100",//摄像头局域网IP地址
"result": {
"PlateResult": {
"bright": 0,//亮度评价(预留)
"carBright": 0,//车身亮度(预留)
"carColor": 1,//【车身颜色】1灰(银)、2黄、3粉、4红、5绿、6蓝、7棕、8黑
"car_brand": {
"brand": 4,//【车辆品牌】品牌较多,另附表格说明
"type": 1,//【车辆类型】0未知、1轿车、2SUV、3MPV、4小型客车、5大型客、6小型货车、7大型货车
"year": 3390//车辆年份
},
"car_location": {//车头位置
"RECT": {//车牌在图片中位置的矩形区域
"bottom": 835,
"left": 680,
"right": 1514,
"top": 454
}
},
"colorType": 1,//车牌颜色:0未知、1蓝色、2黄色、3白色、4黑色、5绿色
"colorValue": 0,
"confidence": 91,
"direction": 0,//车的行进方向:0未知、1左、2右、3上、 4下
"feature_code": true,// 车辆特征码
"gioouts": [],
"is_fake_plate": 0,//是否伪车牌:0真实车牌、1伪车牌
"isoffline": 1,//设备离线状态:0在线、1离线
"license": "川RP1087",//【车牌号】
"license_ext_type": 0,
"location": {//车牌在图片中位置
"RECT": {
"bottom": 756,
"left": 1022,
"right": 1240,
"top": 675
}
},
"plate_distance": 0,//车牌距离
"plate_true_width": 7,//车牌真实宽度
"plateid": 81,// 识别结果车牌 ID
"timeStamp": {
"Timeval": {
"decday": 9,//时间,日
"dechour": 17,//时间,小时
"decmin": 41,//时间,分钟
"decmon": 10,//时间,月
"decsec": 41,//时间,秒
"decyear": 2023,//时间,年
"sec": 1696844501,//从 1970年1月1日到对应帧的秒
"usec": 182508//从 1970年1月1日到对应帧的毫秒
}
},
"timeUsed": 0,//识别所用时间
"triggerType": 4,
"type": 1
}
},
"serialno": "7c3d9103-032ca0b1",//设备序列号,设备唯一
"user_data": ""
}
//微信会员卡营销系统需要增加字段
"vip": "0",//是否为会员:0否、1是
"vip_s": "21",//剩余洗车次数
}
有了这个json后,即可用于客户端、云会员管理系统等数据统计和查询。