Matlab图像处理——基于Hough和Radon实现倾斜车牌校正

https://blog.csdn.net/qq_41301570/article/details/131615671

之前的文章中,我们基于霍夫变换(Hough)对文档图片进行了校正,详细内容点击上方蓝字进行查看。今天再次以基于霍夫变换为出发点,考虑实际环境中的影响因素,进一步探讨了该方法在车牌图片校正中的适用性。此外,本文还介绍了基于Radon变换算法进行的车牌纠正。

1、基于Hough变换车牌校正

clear
clc
I=imread('1.jpg');
I1=rgb2gray(I); %转换成灰度图像       
I2=wiener2(I1,[5,5]); %对图像进行维纳滤波
I3=edge(I2,'sobel', 'horizontal'); %用Sobel水平算子,检测图像边缘直线
[m,n]=size(I3); %计算图像大小
rou=round(sqrt(m^2+n^2)); %获取rou最大值
thetaMax=180; %获取theta角最大值
countMatrix=zeros(rou,thetaMax); %产生量化初值为0的计数矩阵
for i=1:m
    for j=1:n
        if  I3(i,j)==1
           for theta=1:thetaMax
               ru=floor(abs(i*cos(theta*pi/180)+j*sin(theta*pi/180)));
               countMatrix(ru+1,theta)=countMatrix(ru+1,theta)+1;  %对矩阵记数
           end 
        end
    end
end
r_max=countMatrix(1,1);
for i=1:rou
    for j=1:thetaMax
        if countMatrix(i,j)>r_max
            r_max=countMatrix(i,j);
            angle=j;             %把矩阵元素最大值所对应的列坐标赋给c
        end
    end
end
if angle<=90
    rot_theta=-angle; %确定旋转角度
else
    rot_theta=180-angle;
end
I4=imrotate(I,rot_theta,'crop');  %对图像进行旋转矫正
figure
subplot(121),imshow(I)
subplot(122),imshow(I2)
figure,
subplot(121),imshow(I3)
subplot(122),imshow(I4)

53fd4f196fbf2fa3a6a82ab887abe21a.png

2、基于Radon变换车牌校正


clear
clc
I=imread('1.jpg'); %图像输入
I1=rgb2gray(I);  %转换成灰度图像I1        
I2=wiener2(I1,[5,5]); %对图像进行维纳滤波I2  
I3=edge(I2,'sobel', 'horizontal');%用Sobel水平算子对图像边缘化
theta=0:179; %设置选择角度
r=radon(I3,theta); %对图像进行Radon变换
[m,n]=size(r);
c=1;
for i=1:m
    for j=1:n
        if  r(1,1)<r(i,j)
           r(1,1)=r(i,j);
            c=j;
        end
    end
end   %检测Radon变换矩阵中的峰值所对应的列坐标
rot=90-c;%确定旋转角度
I4=imrotate(I,rot,'crop'); %对图像进行旋转矫正
figure
subplot(221),imshow(I)
subplot(222),imshow(I2)
subplot(223),imshow(I3)
subplot(224),imshow(I4)

a3525c4f408433561829737b06fd82f4.png

本文介绍了如何使用Hough变换和Radon变换实现车牌图片校正。通过预处理图片、检测直线、筛选直线、计算旋转角度和调整图片角度等步骤,可以获得更准确的视觉效果。通过进行车牌校正,有助于进行车牌区域提取。关于车牌区域提取,可参考下方蓝色链接:

https://blog.csdn.net/qq_41301570/article/details/131615702

最后:

如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!

6b5dcee2ba504328a5b758dabd8c8865.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MatpyMaster

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值