车牌识别--铆钉的去除

车牌识别中,每一步的效果直接影响整体的识别率,对车牌识别产生干扰的,不仅是车牌的污渍,还有铆钉。

一 、举例说明,铆钉干扰使得车牌识别错误

1、车辆图片

2、通过颜色HSV确认车牌大致位置


3、截取车牌图像


4、二值化后,水平投影,从图片中可以很清楚看到铆钉

   


5、字符分割后的车牌



6、提取分割后的车牌字符



7、错误的识别结果



二、改善方法

这里针对车牌识别的干扰去除方法加以改善。

1、原先博文中车牌识别中去除铆钉的方法,只是用投影的方法。粗略计算铆钉在车牌的上方,白点信息较少,通过水平投影计算每一行的白点数

但是当铆钉嵌入字符中间时,仍然无法去除干扰。

2、这里采用直接出去铆钉的方法,

1)、首先尽量分离字符与铆钉的链接

2)、计算每行的跳变次数,一边铆钉所在行,都是两次,不大于3次,超过7次的,就是字符区域所在行。

这里使用的方法是在跳变次数小于5的行里面,全局搜索白点,然后计算它的宽度和高度,如果宽度大于15个像素,高度大于25个像素(这里车牌归一化后字符大小为20X40),那么他就不是铆钉,否则就当做铆钉删掉。

全局遍历代码:

	for(i = 0; i < img->height/3; i++){if(PointChg[i] && PointChg[i] < 5)//每行跳变次数{for(j = 0; j < img->width; j++){if(dst[i * img->width + j] >= 200 && flag1 == 0)//发现白点即遍历{x1 = x2 = j;y1 = y2 = i;delRivet(img, dst, &flag, j, i, &x1, &y1, &x2, &y2, 15, 25);//display8(*img, dst, 0, 0);flag1 = 1;}if(dst[i * img->width + j] == 0 && flag1 == 1){flag1 = 0;}}break;}}
删除铆钉的函数

img:用了记录车牌的宽度高度信息等

dst:是二值化后的车牌信息,即要遍历查找铆钉的空间

*flag:用来标志是不是铆钉

*x1, *x2 用来计算铆钉宽度  *x2-*x1;

*y1, *y2 同上

xlength,ylength,设置铆钉宽度高度阈值。

static int direction[4][2]={{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
int delRivet(Bmp1 *img, byte *dst, int *flag, int x, int y, int *x1, int *y1, int *x2, int *y2, int xlength, int ylength)
{int i;int tmp;int x0, y0;tmp = dst[y * img->width + x];if((*x2 - *x1 > xlength) || (*y2 - *y1) > ylength){*flag = 1;return 0;}dst[y * img->width + x] = 0;for(i = 0; i < 4; i++){x0 = x + direction[i][0];y0 = y + direction[i][1];if(x0 > 0 && x0 < img->width && y0 > 0 && y0 < img->height && dst[y0 * img->width + x0] && (*flag == 0)){if(*x1 > x0)*x1 = x0;else if(*x2 < x0)*x2 = x0;if(*y1 > y0)*y1 = y0;else if(*y2 < y0)*y2 = y0;delRivet(img, dst, flag, x0, y0, x1, y1, x2, y2, xlength, ylength);//display8(*img, dst, 0, 0);}}if(*flag){dst[y * img->width + x] = tmp;}return 0;
}

3)、去除铆钉的车牌


4)、正确分割


5)、正确提取字符



6)、正确识别结果




源码稍后,提供,车牌识别的代码,我将继续优化,提高识别率,尽早能够应用在arm平台上。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/40169.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT最强竞品Claude-2重磅升级!知识更新到23年,代码数学显著提升,免费可用

夕小瑶科技说 分享 来源 | 机器之心 此次&#xff0c;Claude 2 除了一大波能力上的升级&#xff0c;更重要的是大家都可以用了。 今日&#xff0c;那个被很多网友称为「ChatGPT 最强竞品」的人工智能系统 Claude 迎来了版本大更新。 Claude 2 正式发布&#xff01; 据介绍&a…

第09课:《ChatGPT提示工程》—— Introduction(引言)

ChatGPT 上线至今&#xff0c;在实际应用中&#xff0c;不少人还没真正掌握它的使用技巧。ChatGPT 的难点&#xff0c;在于 Prompt&#xff08;提示词&#xff09;的编写&#xff0c;OpenAI 创始人在今年 2 月时&#xff0c;在 Twitter 上说&#xff1a;「能够出色编写 Prompt …

视觉合集5~2022

发一个合集 总结一些2022年的 一些论文 视觉 Transformer&#xff08;ViT&#xff09;学习什么&#xff1f; 论文链接&#xff1a;https://arxiv.org/pdf/2212.06727.pdf 关于视觉的探索显示&#xff0c;ViT 学习的归纳偏置或特征与卷积神经网络&#xff08;CNN&#xff09;学…

2022年最值得关注的十篇论文,你都看了吗?来卷来学习

2023 点击蓝字 关注我们 关注并星标 从此不迷路 计算机视觉研究院 计算机视觉研究院专栏 作者&#xff1a;Edison_G 年关将至&#xff0c;威斯康星大学助理教授 Sebastian Raschka 盘点了 2022 年他最看好的十大论文。 公众号ID&#xff5c;ComputerVisionGzq 学习群&#xff5…

2022年盘点:最值得关注的十篇机器学习论文

来源&#xff1a;机器之心 计算机视觉与机器学习 本文约4000字&#xff0c;建议阅读8分钟 威斯康星大学助理教授 Sebastian Raschka 盘点了 2022 年他最看好的十大论文。 2022 年 1 月&#xff0c;扩散模型第一次吸引了我的眼球。当时我判断到将会有某些大事发生&#xff0c;然…

pycharm 黄色(黄字)高亮警告 Default argument value is mutable 原因及解决办法(mutable 可变对象与 immutable不可变对象)

示例 解决方案 按照参考文章的意思&#xff0c;classesread_class_names(cfg.YOLO.CLASSES&#xff09;在函数调用时就会创建对象并赋初始值&#xff0c;如果在函数中修改了classes的值&#xff0c;则函数在下一次调用时&#xff0c;就会不会重新初始化值&#xff0c;而以上一…

平面设计之条幅篇

我的博客&#xff0c;我的原创&#xff0c;希望大家能够喜欢 我不是一个真正的美工&#xff0c;但我在社团组织干的是美工的任务&#xff1b; 我不是一个真正的UI&#xff0c;但我在实验室干的是UI的任务&#xff1b; 我不是一个真正的视频制作者&#xff0c;但我在工作室干的是…

做word计算机海报图片,怎么用word制作海报 海报制作方法

一般情况下我们制作海报肯定是使用专业的工具来做了&#xff0c;像photoshop或CoreldRAW来做&#xff0c;但对于我们来讲有时并不需要这么专业的工具来做&#xff0c;我们可以使用word简单制作出漂亮的海报哦。 1.我们先打开要制作海报的word文档之后我们再点击“页面设置”——…

初识pygame

一.pygame介绍 Pygame是被设计用来写游戏的python模块集合,Pygame免费,开源,使用python可以导入pygame模块,Pygame是极度轻便的并且可以运行在众多平台和操作系统上。Pygame包已经被下载过成千上万次,并且也被访问过成千上万次了。 二.pygame安装方法 1.win +R 键出现运…

Could not install packages due to an EnvironmentError: [WinError 5] pip 更新版本解 ———安装pygame遇到的问题

总结过程&#xff1a; 输入pip install pygame发现红字提示使用--user选项 pip install pygame --user 更新pip版本的话把单引号&#xff08;内容可能不一样&#xff09;里的复制下来就好了&#xff0c;如果提示使用--user选项再加就好了 python -m pip install --upgrade …

深入浅出Spring Boot(一) ——创建一个Spring Boot项目

使用Idea创建一个Spring Boot项目 首先点击File->New->Project 然后选择左侧的Spring Initializr&#xff0c;右侧选择自己的jdk版本&#xff0c;点击Next进入下一步 输入Group和Artifact&#xff0c;以及其它信息&#xff0c;点击Next进入下一步 选择Web->Spring …

降本增效工具系列(一):移动端调试利器 vConsole

文章目录 一、前言二、vConsole 简介三、使用方法3.1 引用 JS 文件方式3.2 npm 依赖包方式3.3 第三方插件 四、注意事项五、vConsole 遮挡问题解决六、拓展阅读 一、前言 痛点&#xff1a;移动 web开发时&#xff0c;在手机上&#xff0c;如果是要看控制台信息&#xff0c;都需…

关于Python及库安装的一些问题

三个小问题 Python安装注意事项pip按指示更新后失效管理员身份运行 Python安装注意事项 1&#xff09;建议在python官网https://www.python.org/下载最新版本(官网默认是下载32-bit&#xff0c;64-bit的下载须自行在Downloads版块选择)根据你的操作系统来&#xff0c;64位的就…

发布坐标转换软件OpenCoord的使用第二集-椭球转换

博主自制软件OpenCoord的使用的第二集&#xff0c;主要内容是椭球转换&#xff0c;布尔沙的三参数、七参数法。 OpenCoord的下载地址为&#xff1a;http://www.xiaokcehui.com/?post93&#xff0c;点击第一行的黄字下载 椭球三参数和七参数坐标转换只适用于椭球小角度转换&am…

Python学习笔记(三)——安装第三方模块

再来回顾一下本次学习的终极目标&#xff1a;根据导入的txt文本生成词云。所以我简单浏览了一下相关的语法&#xff0c;直接开始根据需求 &#xff08;写&#xff09; 抄代码 一、git clone 词云项目 打开github搜索关键词 python 词云&#xff0c;克隆了一个项目 作者说需要安…

c语言将26个字母显示在屏幕上,汇编语言在屏幕上输出A-Z26个字母,要求红底,黄字,闪烁...

满意答案 lbdtez5718 2015.11.27 采纳率&#xff1a;52% 等级&#xff1a;12 已帮助&#xff1a;23749人 1234567891011121314151617181920212223242526272829303132333435363738394041在windows的dos窗口中&#xff0c;闪烁未实现 &#xff01;stack segment stack …

处理七日杀开服EOS错误黄字错误红字错误,开服出现房间无法被搜索的问题

如题&#xff0c;本问题建立在你的服务器已经正常启动的情况下。 如果你的服务器根本做不到正常启动&#xff0c;那么这个方案可能并不适合你。 这里只提供windows端的配套过程&#xff0c;如果你的os是linux&#xff0c;那么需要自行bing一下证书导入方法。 本文默认你的serve…

chatgpt赋能python:Python编程实现九九乘法表教程

Python编程实现九九乘法表教程 作为一种高效、易于入门的编程语言&#xff0c;Python在教育领域和工业界都受到了广泛的应用。本篇文章将向大家介绍如何使用Python编写九九乘法表&#xff0c;帮助读者更加深入地学习Python编程语言。 什么是九九乘法表&#xff1f; 九九乘法…

吴恩达|chatgpt 提示词工程师学习笔记。

目录 一、提示指南 写提示词的2大原则&#xff1a; 模型的限制 二、迭代 三、总结 四、推断 五、转换 六、扩展 七、对话机器人 吴恩达和openai团队共同开发了一款免费的课程&#xff0c;课程是教大家如何更有效地使用prompt来调用chatgpt&#xff0c;整个课程时长1个…