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. 数据标注:图像镜像(水平镜像;垂直镜像;对角镜像)

    1 介绍 在训练卷积神经网络的时候,常常需要将原有图像数据集进行一定程度上的扩充,采用的手段主要是图像镜像等方法.本文主要实现了图像的批量水平镜像,垂直镜像,对角镜像功能,希望对你有所帮助! 2 源代 ...

  2. python写透视挂_如何用Python openCV 用透视变换的方法对图像进行矫正

    .需要矫正的图片1 需要矫正的图 矫正后的结果: 矫正后的图 需要矫正的图片2 矫正前 矫正后 # import the necessary packages from imutils.perspec ...

  3. 大型开源车牌数据集CCPD及私有车牌数据集介绍

    转自:https://zhuanlan.zhihu.com/p/213780276?utm_source=wechat_session 一般常见的车牌数据集都是收集于交通监控系统.高速公路收费站和停车 ...

  4. matlab hough算法车牌识别,一种基于数学形态学和Hough变换的车牌图像检测及定位算法-汽车电子-与非网...

    车牌识别系统(LPR)在现代交通检测和管理部门中发挥着举足轻重的作用.车牌识别系统主要包括车牌定位.字符分割和字符识别三部分[1].由于车牌定位的准确与否将会直接影响到车牌识别的结果,因此,车牌定位是 ...

  5. Python基于YOLOv7和CRNN的车牌分割&识别系统(源码&教程)

    1.研究背景 随着科技的进步和社会需求的增长,近年来摄像头逐渐高清化.高帧率化,摄像头作为信息获取设备的载体也不再局限于固定场景.路口.路侧.室内.高位.低位等不同场景下产生了各种对于检测识别的需求, ...

  6. 基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类)

    基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类) 一.数据集说明 训练样本来自于github上的EasyPR的c++版本,包含一万三千多张数字及大写字母的图片以及三千多张中 ...

  7. 基于matlab的蓝色车牌识别(车牌倾斜矫正)

    目录 一 处理流程 二 结果展示 三 核心要点解读 四 matlab代码实现 整套方案好包括以下博客: (1)基于matlab的蓝色车牌识别(绪论) (2)基于matlab的蓝色车牌识别(车牌定位) ...

  8. 车牌识别--倾斜矫正

    在车牌识别系统中, 车牌字符能够正确分割的前提是车牌图像能够水平,以至于水平投影和垂直投影能够正常进行.如果车牌倾斜没有矫正,那么水平投影和垂直投影,甚至铆钉都无法正常处理.所以,当车辆信息中获取车牌 ...

  9. python+opencv生成较真实的车牌号码图片

    本文参考github代码:https://github.com/loveandhope/license-plate-generator 效果: 一.代码目录结构: background目录下存放各种背 ...

最新文章

  1. Dockerfile构建实践
  2. Java网络编程——9.服务器Socket
  3. 分苹果问题的C++和Python实现
  4. 【数据结构与算法】之深入解析“螺旋矩阵”的求解思路与算法示例
  5. Fiddler抓取APP网络请求
  6. JS中 map, filter, some, every, forEach, for in, for of 用法总结
  7. 服务器虚拟交换机到网卡不通,S7700堆叠,服务器之间相互ping不通,关闭备交换机ping正常...
  8. 接口管理平台YApi
  9. 财付通php接口,dedecms 财付通接口,dedecms财付通_PHP教程
  10. 数据库的基本操作、增删查改
  11. centos mysql php tomcat_CentOS 6.x使用yum快速安装Apache+PHP+Tomcat(JSP)+MySQL
  12. 如果不使用 SQL Mail,如何在 SQL Server 中发送电子邮件
  13. 漫画:如何给女朋友解释灭霸的响指并不是真随机消灭半数宇宙人口的?
  14. pku2192(并查集+枚举)
  15. 常见花材的固定的方法有哪些_固定无梁拱形屋顶的方法都有哪些呢?
  16. mysql.bat启动关闭脚本
  17. 【路径规划】A*三维全局路径规划(附Python实现源码)
  18. excel怎么统计相同名字的数量
  19. 估值最高的自媒体达38亿,不是咪蒙、一条,也不是逻辑思维,而是他..
  20. supermap新建数据源_supermap iDesktop 处理数据集及生成场景缓存

热门文章

  1. ISMS管理体系学习指南-为什么要信息安全?
  2. PDF转WORD 介绍一些网站
  3. 2014年第一期ThoughtWorks技术雷达发布
  4. 64位电脑 装32位oracle,在64位Windows和64位Oracle 11g基础上安装32位ArcSDE
  5. WIFI 的 传输信道 与标准 WIFI的频道 传输能力
  6. 物业管理中的电子签章应用:招商、租赁、投标、业主服务无纸化
  7. 中国智能变电站运维行业调研与发展前景报告(2022版)
  8. 有趣的TCP BBR ProbeRTT行为点滴
  9. 印象笔记新版 2020-7-20 for mac bug,网页版的内部链接不可用
  10. SpringBoot-Jacoco单元测试覆盖率报告