基于MATLAB的仿射变换/透射变换/道路检测/车牌检测

仿射变换即把三维物体所成的二维图像进行还原。话不多说,直接上效果:

1.平面翻转

可以使用鼠标任意选取四个点,然后将这四个点变换成矩形。运行结果如下:

2.基于霍夫变换

 3.基于仿射变换

先来看另一组基于霍夫变换进行仿射的例子(道路检测):

 很显然,简单的检测出最长边再旋转的方法在这里行不通了,因为从三维(但是图像是二维的)变化到二维需要新的算法。

原理:获取原图上四个点,推出新图像的四个点,然后得出它们的变换矩阵,将这个矩阵应用到原图的每一个点,得出新的图像。

(原图)

(变换后的图)

这里存在两个问题:一是变换后新的图像会有一些点没有被映射到,所以是黑的。二是只能对角度较小的原图进行变换,像张荣帅一开始给我发的那个就不行,因为太大了,原图的很多点会被映射到非常大的矩阵中去。

    然后我先解决第一个问题:双线性插值,原理是竖着插又横着插,运行结果如下:

 针对第二个问题,我想到的是通过线性规划来解决,就是只对我选的四个点以内的图像进行变换,别的点都不要了,我拿车牌的图运行了一下:

但是同样的代码运行到马路那张图时,就变成这样了:

原因是针对不同的原图像所选取的四边形,线性规划时有时候要取直线下方的点,有时候要取直线上方的点,符号不能确定,后来想到的办法是,四个点,取了一条直线后,剩下两点里面任取一个点,然后和这个点同一边(判断方法为“同号”)的点就是我们要的点。

运行结果如下:

如果要取远一点也OK(之前完全取不了,因为新数组太大了):(仍有优化空间)

最后的功能就是可以将任意四边形,二维也好,三维也好,变回矩形。

 注:有需要源文件及设计文件的朋友可以联系作者,作者创作不易,希望客官们打赏~(作者联系方式见评论区)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值