基于Opencv实现车牌图片识别系统,为什么spring能最好地改变Java

该博客介绍了如何使用Java和OpenCV进行车牌图片识别,通过Spring框架管理业务逻辑。文章详细展示了代码实现,包括文件处理、图片识别、数据库操作等步骤,并提供了完整的服务层实现。
摘要由CSDN通过智能技术生成

Map<String, Object> paramMap = Maps.newHashMap();

paramMap.put(“filePath”, filePath);

List list= plateFileMapper.selectByCondition(paramMap);

if(null == list || list.size() <= 0) {

if(FileUtil.checkFile(f)) {

entity = new PlateFileEntity();

entity.setFileName(f.getName());

entity.setFilePath(f.getAbsolutePath().replaceAll(“\\”, “/”));

entity.setFileType(f.getName().substring(f.getName().lastIndexOf(“.”) + 1));

plateFileMapper.insertSelective(entity);

}

reRecognise = true;

} else {

entity = list.get(0);

}

if(reRecognise || StringUtils.isEmpty(entity.getTempPath())) {

doRecognise(f, entity); // 重新识别

entity = plateFileMapper.selectByPrimaryKey(entity.getId()); // 重新识别之后,重新获取一下数据

}

// 查询debug文件

if(!StringUtils.isEmpty(entity.getTempPath())) {

Vector debugFiles = new Vector();

FileUtil.getFiles(entity.getTempPath(), debugFiles);

entity.setDebugFiles(debugFiles);

}

return entity;

}

@Override

public Object recogniseAll() {

// 查询到还没有进行车牌识别的图片

List list = plateFileMapper.getUnRecogniseList();

list.parallelStream().forEach(n->{

File f = new File(n.getFilePath());

if(FileUtil.checkFile(f)) {

doRecognise(f, n);

}

});

return 1;

}

/**

  • 单张图片 车牌识别

  • 拷贝文件到临时目录

  • 过程及结果更新数据库

  • @param f

  • @param e

  • @return

*/

public Object doRecognise(File f, PlateFileEntity e) {

if(!f.exists()) {

return null;

}

String ct = GenerateIdUtil.getStrId();

String targetPath = Constant.DEFAULT_TEMP_DIR + ct + (f.getName().substring(f.getName().lastIndexOf(“.”)));

FileUtil.copyAndRename(f.getAbsolutePath(), targetPath); // 拷贝文件并且重命名

// 创建临时目录, 存放过程图片

String tempPath = Constant.DEFAULT_TEMP_DIR + ct + “/”;

FileUtil.createDir(tempPath);

e.setTempPath(tempPath);

Boolean debug = false;

Vector dst = new Vector();

PlateUtil.getPlateMat(targetPath, dst, debug, tempPath);

Set plates = Sets.newHashSet();

dst.stream().forEach(inMat -> {

Pl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值