javaCV图像处理系列:

一、javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作
二、javaCV图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制
三、opencv图像处理3:使用opencv原生方法遍历摄像头设备及调用(方便多摄像头遍历及调用,相比javacv更快的摄像头读取速度和效率,方便读取后的图像处理)
四、opencv图像处理系列:国内车辆牌照检测识别系统(万份测试准确率99.7%以上)

一、实现的功能

1、车牌检测(支持图片中含有单车牌和多车牌检测)

2、车牌定位

3、车牌字符识别

4、千份测试单次检测识别完成平均耗时39ms,准确率89.9%

二、项目维护

github项目地址:https://github.com/eguid/vlpr4j

注意:由于授权协议具有传染性,本项目基于EasyPR开发,EasyPR采用GPL v2.0与ODL(Open Database License)授权协议,因此基于商业用途使用本项目时请留意授权。

三、使用方式

package cc.eguid.charsocr;import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.DataBuffer;
import java.awt.image.DataBufferByte;
import java.awt.image.SampleModel;
import java.math.BigDecimal;
import java.util.Vector;import org.bytedeco.javacpp.opencv_imgcodecs;
import org.bytedeco.javacpp.Pointer;
import org.bytedeco.javacpp.opencv_core;
import org.bytedeco.javacpp.opencv_core.CvType;
import org.bytedeco.javacpp.opencv_core.CvTypeInfo;
import org.bytedeco.javacpp.opencv_core.Mat;import cc.eguid.charsocr.core.CharsRecognise;
import cc.eguid.charsocr.core.PlateDetect;/*** 车牌识别* @author eguid**/
public class PlateRecognition {static PlateDetect plateDetect =null;static CharsRecognise cr=null;static{plateDetect=new PlateDetect();plateDetect.setPDLifemode(true);cr = new CharsRecognise();}/*** 单个车牌识别* @param mat* @return*/public static String plateRecognise(Mat mat){Vector<Mat> matVector = new Vector<Mat>(1);if (0 == plateDetect.plateDetect(mat, matVector)) {if(matVector.size()>0){return cr.charsRecognise(matVector.get(0));}}return null;}/*** 多车牌识别* @param mat* @return*/public static String[] mutiPlateRecognise(Mat mat){PlateDetect plateDetect = new PlateDetect();plateDetect.setPDLifemode(true);Vector<Mat> matVector = new Vector<Mat>(10);if (0 == plateDetect.plateDetect(mat, matVector)) {CharsRecognise cr = new CharsRecognise();String[] results=new String[matVector.size()];for (int i = 0; i < matVector.size(); ++i) {String result = cr.charsRecognise(matVector.get(i));results[i]=result;}return results;}return null;}/*** 单个车牌识别* @param mat* @return*/public static String plateRecognise(String imgPath){Mat src = opencv_imgcodecs.imread(imgPath);return plateRecognise(src);}/*** 多车牌识别* @param mat* @return*/public static String[] mutiPlateRecognise(String imgPath){Mat src = opencv_imgcodecs.imread(imgPath);return mutiPlateRecognise(src);}public static void main(String[] args){int sum=100;int errNum=0;int sumTime=0;long longTime=0;for(int i=sum;i>0;i--){String imgPath = "res/image/test_image/plate_judge.jpg";Mat src = opencv_imgcodecs.imread(imgPath);long now =System.currentTimeMillis();String ret=plateRecognise(src);System.err.println(ret);long s=System.currentTimeMillis()-now;if(s>longTime){longTime=s;}sumTime+=s;if(!"川A0CP56".equals(ret)){errNum++;}}System.err.println("总数量:"+sum);System.err.println("单次最长耗时:"+longTime+"ms");BigDecimal errSum=new BigDecimal(errNum);BigDecimal sumNum=new BigDecimal(sum);BigDecimal c=sumNum.subtract(errSum).divide(sumNum).multiply(new BigDecimal(100));System.err.println("总耗时:"+sumTime+"ms,平均处理时长:"+sumTime/sum+"ms,错误数量:"+errNum+",正确识别率:"+c+"%");}
}

转载于:https://www.cnblogs.com/eguid/p/10195581.html

javacpp-opencv图像处理系列:国内车辆牌照检测识别系统(万份测试准确率79.7%以上)...相关推荐

  1. cv2 python 获取斑马线_基于python的opencv图像处理实现对斑马线的检测示例

    基本思路 斑马线检测通过opencv图像处理来进行灰度值转换.高斯滤波去噪.阈值处理.腐蚀和膨胀后对图像进行轮廓检测,通过判断车辆和行人的位置,以及他们之间的距离信息,当车速到超过一定阈值时并且与行人 ...

  2. 不到一秒卖出一部!荣耀9X系列国内销售29天破300万台

    8月28日,荣耀官方宣布荣耀9X系列国内销售29天突破300万台!荣耀9X系列拥有麒麟810芯片.达芬奇架构NPU.4800万像素摄像头等高性能配置,起售价1399元. 荣耀9X系列采用6.59英寸超 ...

  3. 【愚公系列】2023年04月 Halcon机器视觉-基于Halcon车牌识别

    文章目录 前言 1.Halcon是什么 2.车牌识别 3.车牌识别系统 一.基于Halcon车牌识别 1.车牌识别的流程 二.车牌识别前预处理 三.开始车牌识别 四.识别车牌上面的中文 1.处理需要识 ...

  4. python的opencv 车牌识别 开源_毕节进出口车牌识别系统怎么样

    毕节进出口车牌识别系统怎么样 gzheu8il 毕节进出口车牌识别系统怎么样 系统拓扑图如下:该系统以社区中心机房为枢纽,有机的将智慧家居住户.社区数字化服务.物业数字化管理.社区智能化管理结合起来, ...

  5. 车牌识别存储云服务器,云端车牌识别-车辆信息查询

    原标题:云端车牌识别-车辆信息查询 车牌识别,我们经常想起的是车牌识别枪.移动端车牌识别扫描.车牌识别算法现在运用是非常之多,我们在停车场.商场等地方都可以看到车牌识别相机枪,而车牌识别除了车牌识别相 ...

  6. 基于python的opencv图像处理实现对斑马线的检测(最简单的方法!!!几十行代码搞定!!!)

    基本思路 斑马线检测通过opencv图像处理来进行灰度值转换.高斯滤波去噪.阈值处理.腐蚀和膨胀后对图像进行轮廓检测,通过判断车辆和行人的位置,以及他们之间的距离信息,当车速到超过一定阈值时并且与行人 ...

  7. Python+OpenCV 图像处理系列(5)—— 图像 ROI 操作及通道的拆分合并

    1. 图像 ROI 有时你需要对一幅图像的特定区域进行操作.例如我们要检测一副图像中眼睛的位置,我们首先应该在图像中找到脸,再在脸的区域中找眼睛,而不是直接在一幅图像中搜索.这样会提高程序的准确性和性 ...

  8. Python+OpenCV 图像处理系列(1)— Ubuntu OpenCV安装、图片加载、显示和保存

    Ubuntu 16.04 下安装 Opencv sudo apt-get install libopencv-dev sudo apt-get install python-opencv 或者使用 p ...

  9. Python+OpenCV 图像处理系列(9)—— 图像的翻转和缩放插值

    1. 图像的翻转 图像翻转 (Image Flip),图像翻转的本质像素映射,OpenCV 支持三种图像翻转方式: X轴翻转,flipcode = 0 Y轴翻转, flipcode = 1 XY轴翻转 ...

  10. Python+OpenCV 图像处理系列(8)—— Numpy 对象及图像对象创建与赋值

    1. Numpy 相关知识 1.1 Ndarray 对象 在了解 OpenCV 的图像对象之前我们先对 NumPy 的基础知识做一回顾,方便我们后续更进一步理解图像对象的一系列操作. In [2]: ...

最新文章

  1. 加固工程验收规范50550_石家庄栾城县厂房梁柱加固施工队规范作业-建筑加固
  2. 远程声控系统(MATLAB代码见CSDN资源)
  3. 在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新。
  4. 技术复习-数据锁和数据库事务
  5. Nuget 管理报repositories.config 访问路径被拒绝 解决办法
  6. BOOST库介绍(二)——BOOST多线程相关库
  7. QT表格QTableWidget在win10下纵横表头无分隔线的问题
  8. go编程语言为什么这么流行?
  9. 【MATLAB统计分析与应用100例】案例017:matlab读取Excel数据,进行变量系统聚类分析
  10. 用EasyPoi导入Excel
  11. PIC单片机学习笔记
  12. 2017春运抢票软件哪个好,教你看懂刷票原理!
  13. 【51CTO学院三周年】通往程序猿艰辛历程,幸好遇到51CTO学院
  14. sip是什么?Mac电脑如何关闭sip?关闭系统完整性保护SIP的方法教程
  15. 淘宝小程序 表单组件checkbox的默认样式修改
  16. AIX7.1 安装配置 EMC CLARiiON 存储驱动软件
  17. 解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
  18. 昆山杜克大学IT/AV Analyst Entry-level面经
  19. hive插入表数据以及出现问题的解决
  20. 纵览全局的框框——智慧搜索

热门文章

  1. windows命令 format的用法
  2. python从入门到实践 练习题雨滴下落--我的下落时全都连在一起了---已解决
  3. 李华明Himi浅谈游戏开发de自学历程!(仅供参考)
  4. android 显示和风天气字体图标
  5. Invalid bound statement (not found): com.xingyu.demo.mapper.UserMapper.update错误
  6. 《SysML精粹》学习记录--第三章
  7. 中国ROHS 2.0 ---sj/t 11364-2014
  8. android o bln-al10,华为荣耀BLN-AL10是什么型号
  9. 作网站需要服务器吗,如何制作网站服务器
  10. vue实现按钮倒计时功能