python车牌矫正_radon变换用于车牌图像倾斜矫正[水平倾斜和垂直倾斜]
Radon变换定义:下图显示了在指定的旋转角度的单一投影。间距为1个像素的平行光穿过图像,则radon变换计算穿过图像长度上的积分,即
式中
旋转角度为θ的平行束投影
f(x,y) 在垂直方向的线积分是f(X,Y)投影到X轴;在水平方向的积分是f(X,Y)投影到Y轴。可以沿任意角度θ计算投影,下图说明了Radon变换沿角度θ的几何形状。
其实可以通俗地理解为将图像上每一个点向一个旋转的新坐标系y'作投影,在得到的投影合集中找到最大投影就能知道图像的最大化为偏角,使用旋转公式就能将图像矫正过来。
车牌识别中遇到两种倾斜,垂直和水平倾斜。两种倾斜都是因为相机安装位置和监控过车角度没有对好导致。
垂直倾斜二值图:
水平倾斜二值图:
垂直倾斜为菱形扭曲,水平倾斜车牌字符仍保留原来的比例特征。理论上通过从radon变换结果中取得最大投影的角度,然后就可以将图像进行旋转矫正。下面是Matlab实现:
clear all
clc
close all
[inputfilename,dirname]= uigetfile('*.*');
inputfilename=[dirname, inputfilename];
im= imread(inputfilename); % For example: 'input.jpg'grayImage=rgb2gray(im);%%%%%
%%%%% Edge detection andedge linking....
binaryImage= edge(grayImage,'canny'); % 'Canny'edge detector
binaryImage= bwmorph(binaryImage,'thicken'); % A morphological operation foredge linking%%%%%
%%%%% Radon transform projections along 180 degrees, from -90 to +89....% R: Radon transform of the intensity image 'grayImage' for -90:89degrees.%In fact, each column of R shows the image profile along corresponding angle.% xp: a vector containing the radial coordinates corresponding to each row of 'R'.% Negative angles correspond to clockwise directions, whilepositive angles% correspond to counterclockwise directions around the center point (up-left corner).% R1: A 1x180 vector in which, each element isequal the maximum value of Radon transform along each angle.%This value reflects the maximum number of pixels along each direction.% r_max: A 1x180 vector, which includes corresponding radii of 'R1'.
theta= -90:89;
[R,xp]=radon(binaryImage,theta);
imagesc(theta,xp, R); colormap(jet);
xlabel('theta (degrees)');ylabel('x''');
title('theta方向对应的Radon变换R随着x''的变化图');
colorbar%%%%%[R1,r_max]=max(R);
theta_max= 90;while(theta_max > 50 || theta_max
[R2,theta_max]= max(R1); %R2: Maximum Radon transform value over all angles.%theta_max: Corresponding angle
R1(theta_max)= 0; % Remove element 'R2' from vector 'R1', so that other maximum values can be found.
theta_max= theta_max - 91;
end
correctedImage= imrotate(im,-theta_max); %Rotation correction
correctedImage(correctedImage== 0) = 255; %Converts black resgions to white regions
subplot(1,2,1), subimage(im)
subplot(1,2,2), subimage(correctedImage)
垂直倾斜矫正结果:
水平倾斜旋转后结果:
垂直倾斜还需要将每一个字符纵向移动,保证水平。
发现从radon变换结果R中统计最大角度有时有问题,还需再改进。另外还没有使用C实现radon变换。
python车牌矫正_radon变换用于车牌图像倾斜矫正[水平倾斜和垂直倾斜]相关推荐
- 数据标注:图像镜像(水平镜像;垂直镜像;对角镜像)
1 介绍 在训练卷积神经网络的时候,常常需要将原有图像数据集进行一定程度上的扩充,采用的手段主要是图像镜像等方法.本文主要实现了图像的批量水平镜像,垂直镜像,对角镜像功能,希望对你有所帮助! 2 源代 ...
- python写透视挂_如何用Python openCV 用透视变换的方法对图像进行矫正
.需要矫正的图片1 需要矫正的图 矫正后的结果: 矫正后的图 需要矫正的图片2 矫正前 矫正后 # import the necessary packages from imutils.perspec ...
- 大型开源车牌数据集CCPD及私有车牌数据集介绍
转自:https://zhuanlan.zhihu.com/p/213780276?utm_source=wechat_session 一般常见的车牌数据集都是收集于交通监控系统.高速公路收费站和停车 ...
- matlab hough算法车牌识别,一种基于数学形态学和Hough变换的车牌图像检测及定位算法-汽车电子-与非网...
车牌识别系统(LPR)在现代交通检测和管理部门中发挥着举足轻重的作用.车牌识别系统主要包括车牌定位.字符分割和字符识别三部分[1].由于车牌定位的准确与否将会直接影响到车牌识别的结果,因此,车牌定位是 ...
- Python基于YOLOv7和CRNN的车牌分割&识别系统(源码&教程)
1.研究背景 随着科技的进步和社会需求的增长,近年来摄像头逐渐高清化.高帧率化,摄像头作为信息获取设备的载体也不再局限于固定场景.路口.路侧.室内.高位.低位等不同场景下产生了各种对于检测识别的需求, ...
- 基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类)
基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类) 一.数据集说明 训练样本来自于github上的EasyPR的c++版本,包含一万三千多张数字及大写字母的图片以及三千多张中 ...
- 基于matlab的蓝色车牌识别(车牌倾斜矫正)
目录 一 处理流程 二 结果展示 三 核心要点解读 四 matlab代码实现 整套方案好包括以下博客: (1)基于matlab的蓝色车牌识别(绪论) (2)基于matlab的蓝色车牌识别(车牌定位) ...
- 车牌识别--倾斜矫正
在车牌识别系统中, 车牌字符能够正确分割的前提是车牌图像能够水平,以至于水平投影和垂直投影能够正常进行.如果车牌倾斜没有矫正,那么水平投影和垂直投影,甚至铆钉都无法正常处理.所以,当车辆信息中获取车牌 ...
- python+opencv生成较真实的车牌号码图片
本文参考github代码:https://github.com/loveandhope/license-plate-generator 效果: 一.代码目录结构: background目录下存放各种背 ...
最新文章
- Dockerfile构建实践
- Java网络编程——9.服务器Socket
- 分苹果问题的C++和Python实现
- 【数据结构与算法】之深入解析“螺旋矩阵”的求解思路与算法示例
- Fiddler抓取APP网络请求
- JS中 map, filter, some, every, forEach, for in, for of 用法总结
- 服务器虚拟交换机到网卡不通,S7700堆叠,服务器之间相互ping不通,关闭备交换机ping正常...
- 接口管理平台YApi
- 财付通php接口,dedecms 财付通接口,dedecms财付通_PHP教程
- 数据库的基本操作、增删查改
- centos mysql php tomcat_CentOS 6.x使用yum快速安装Apache+PHP+Tomcat(JSP)+MySQL
- 如果不使用 SQL Mail,如何在 SQL Server 中发送电子邮件
- 漫画:如何给女朋友解释灭霸的响指并不是真随机消灭半数宇宙人口的?
- pku2192(并查集+枚举)
- 常见花材的固定的方法有哪些_固定无梁拱形屋顶的方法都有哪些呢?
- mysql.bat启动关闭脚本
- 【路径规划】A*三维全局路径规划(附Python实现源码)
- excel怎么统计相同名字的数量
- 估值最高的自媒体达38亿,不是咪蒙、一条,也不是逻辑思维,而是他..
- supermap新建数据源_supermap iDesktop 处理数据集及生成场景缓存
热门文章
- ISMS管理体系学习指南-为什么要信息安全?
- PDF转WORD 介绍一些网站
- 2014年第一期ThoughtWorks技术雷达发布
- 64位电脑 装32位oracle,在64位Windows和64位Oracle 11g基础上安装32位ArcSDE
- WIFI 的 传输信道 与标准 WIFI的频道 传输能力
- 物业管理中的电子签章应用:招商、租赁、投标、业主服务无纸化
- 中国智能变电站运维行业调研与发展前景报告(2022版)
- 有趣的TCP BBR ProbeRTT行为点滴
- 印象笔记新版 2020-7-20 for mac bug,网页版的内部链接不可用
- SpringBoot-Jacoco单元测试覆盖率报告