diff --git a/open-anpr-server/src/main/java/com/visual/open/anpr/server/controller/server/impl/PlateControllerImpl.java b/open-anpr-server/src/main/java/com/visual/open/anpr/server/controller/server/impl/PlateControllerImpl.java index f7c0f35..dbaf2fe 100644 --- a/open-anpr-server/src/main/java/com/visual/open/anpr/server/controller/server/impl/PlateControllerImpl.java +++ b/open-anpr-server/src/main/java/com/visual/open/anpr/server/controller/server/impl/PlateControllerImpl.java @@ -18,6 +18,11 @@ public class PlateControllerImpl extends BaseController implements PlateControll @Override public ResponseInfo> recognition(PlateInfoReqVo plateInfoReq) { + + String image = plateInfoReq.getImage(); + if (image == null || image.isEmpty()) { + return ResponseBuilder.exception("image cannot be empty", null); + } try { return ResponseBuilder.success(plateService.recognition(plateInfoReq)); }catch (Exception e){ diff --git a/open-anpr-server/src/main/java/com/visual/open/anpr/server/controller/server/restful/PlateController.java b/open-anpr-server/src/main/java/com/visual/open/anpr/server/controller/server/restful/PlateController.java index 310f387..f78d7ac 100644 --- a/open-anpr-server/src/main/java/com/visual/open/anpr/server/controller/server/restful/PlateController.java +++ b/open-anpr-server/src/main/java/com/visual/open/anpr/server/controller/server/restful/PlateController.java @@ -34,11 +34,12 @@ public class PlateController extends PlateControllerImpl { @ApiOperation(value = "根据图片名称车牌识别") @RequestMapping(value = "getByImageName", method = RequestMethod.GET) public ResponseInfo> imagesToBase64(@RequestParam String imageName){ - String property = System.getProperty("user.dir") + "\\images\\"; + String property = System.getProperty("user.dir") ; String filePath = property + targetPath + imageName; String imageBaseCode = ImageUtil.convertImageToBase64Str(filePath); PlateInfoReqVo plateInfoReq = new PlateInfoReqVo(); plateInfoReq.setImage(imageBaseCode); + return recognition(plateInfoReq); } @@ -46,7 +47,7 @@ public class PlateController extends PlateControllerImpl { /** * 抓拍实况中的车牌并识别 (可同时识别,默认最多5张车牌) - * @param CameraIP ffmpeg所需的摄像头IP地址 + * @param CameraIP ffmpeg所需要的输入流 * @return 返回识别结果 */ @ApiOperation(value = "抓拍实况中的车牌并识别") @@ -55,6 +56,9 @@ public class PlateController extends PlateControllerImpl { // 获取当前项目路径 String property = System.getProperty("user.dir"); String imageName = FfmpegUtil.getLiveCapture(CameraIP, property + targetPath); + if ("error".equals(imageName)){ + return ResponseInfo.error("抓拍失败"); + } return imagesToBase64(imageName); } diff --git a/open-anpr-server/src/main/java/com/visual/open/anpr/server/domain/common/ResponseInfo.java b/open-anpr-server/src/main/java/com/visual/open/anpr/server/domain/common/ResponseInfo.java index 189e824..f9808d0 100755 --- a/open-anpr-server/src/main/java/com/visual/open/anpr/server/domain/common/ResponseInfo.java +++ b/open-anpr-server/src/main/java/com/visual/open/anpr/server/domain/common/ResponseInfo.java @@ -28,6 +28,14 @@ public class ResponseInfo implements Serializable{ this.data = data; } + public static ResponseInfo success(T data){ + return new ResponseInfo(200, "success", data); + } + + public static ResponseInfo error(String message){ + return new ResponseInfo(500, message, null); + } + public Integer getCode() { return code; } diff --git a/open-anpr-server/src/main/java/com/visual/open/anpr/server/utils/FfmpegUtil.java b/open-anpr-server/src/main/java/com/visual/open/anpr/server/utils/FfmpegUtil.java index d8439da..8188356 100644 --- a/open-anpr-server/src/main/java/com/visual/open/anpr/server/utils/FfmpegUtil.java +++ b/open-anpr-server/src/main/java/com/visual/open/anpr/server/utils/FfmpegUtil.java @@ -197,11 +197,17 @@ public class FfmpegUtil { blockFfmpeg(br); } } catch (IOException e) { - formattedDate = "获取实况抓拍图片失败"; - System.out.println(formattedDate); - e.printStackTrace(); - return formattedDate; - } return formattedDate; + System.out.println("获取实况抓拍图片失败"); + return "error"; + } + File file = new File(targetPath + formattedDate); + boolean exists = file.exists(); + + if (!exists) { + return "error"; + } + + return formattedDate; } /**