纯css车牌倾斜矫正的方法 css图像透视变换

简介: 纯css车牌倾斜矫正的方法 css图像透视变换

主要使用css里面transform的rotate和skew,一个是旋转,一个形变。我们先来看看概念:

rotate()


CSS 的 rotate() 函数定义了一种将元素围绕一个定点(由transform-origin属性指定)旋转而不变形的转换。指定的角度定义了旋转的量度。若角度为正,则顺时针方向旋转,否则逆时针方向旋转。旋转 180° 也被称为点反射。

语法<angle> 指定了 rotate() 的旋转程度。参数为正时,顺时针旋转;参数为负时,逆时针旋转。180° 旋转称为点反演

skew()


skew() 函数定义了一个元素在二维平面上的倾斜转换。

这种转换是一种剪切映射 (横切),它在水平和垂直方向上将单元内的每个点扭曲一定的角度。每个点的坐标根据指定的角度以及到原点的距离,进行成比例的值调整;因此,一个点离原点越远,其增加的值就越大。

语法skew() 函数指定一个或两个参数,它们表示在每个方向上应用的倾斜量。

接下来我们开始


为了测试在百度里找了个典型的倾斜的图,如下:

image.png

第1步:测量水平偏移角度


经过测量大概是13度。

image.png

我们使用代码transform:rotate(-13deg)得到如下结果:

image.png

第2步:继续在上面的结果上测量形变度数:


经过测量大概是16度。

image.png

再进一步加上transform:skew(-16deg)就得到了:

image.png

完整代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>CSStransform的应用-校正车牌</title>
<style>
  .img{transform:rotate(-13deg) skew(-16deg);}
</style>
</head>
<body>
    <img src="https://ucc.alicdn.com/images/user-upload-01/20200517195232687.jpg" alt="">
    <img class="img" src="https://ucc.alicdn.com/images/user-upload-01/20200517195232687.jpg">
</body>
</body>
</html>

ps:有些网友问如何自动得到13°和16°这两个数值,目前我还没有办法,我想这个只能通过人工智能识别图片中车牌位置,然后自动计算水平和垂直偏移度数来实现了,以上的方法只是抛砖引玉。

拓展:如果对于下面这样一点透视的图片,以上方法并没有效果,不知道用css如何实现,如果有知道的大神可以留言告知一下。

image.png

要是css能有像ps那种4点定位的方式的方式就好了,那样就方便多了,只要通过智能识别到车牌的4个顶点即可一步到位矫正了。希望w3c组织下次制定标准时能为css加上这个特性。

c1000a3feb754a1cbc5ef6d4134e6e8d_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg

f6ccda22584145fbb60f9116b60b44d9_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


目录
相关文章
|
1月前
|
JavaScript 前端开发
【快捷键配置】常用HTML类名、CSS样式名称、JS方法变量名、vue代码片段
【快捷键配置】常用HTML类名、CSS样式名称、JS方法变量名、vue代码片段
|
2月前
|
前端开发
CSS水平居中与垂直居中的方法
CSS水平居中与垂直居中的方法
|
2月前
|
前端开发
CSS画三角形(三种方法)
CSS画三角形(三种方法)
|
2月前
|
前端开发 计算机视觉 开发者
利用CSS改变图片颜色的100种方法!
利用CSS改变图片颜色的100种方法!
45 1
|
3月前
|
前端开发 JavaScript 开发者
CSS隐藏元素的N种方法,你知道哪一种最适合你?
欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚开始学习前端的读者们打造的。无论你是初学者还是有一些基础的开发者,我们都会在这里为你提供一个系统而又亲切的学习平台。我们以问答形式更新,为大家呈现精选的前端知识点和最佳实践。通过深入浅出的解释概念,并提供实际案例和练习,让你逐步建立起一个扎实的基础。无论是HTML、CSS、JavaScript还是最新的前端框架和工具,我们都将为你提供丰富的内容和实用技巧,帮助你更好地理解并运用前端开发中的各种技术。
|
4月前
|
前端开发 JavaScript
前端必看的8个HTML+CSS技巧 (六) 裁剪图像的动画
前端必看的8个HTML+CSS技巧 (六) 裁剪图像的动画
|
12天前
|
前端开发
【专栏】在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法
【4月更文挑战第29天】本文介绍了在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法。首先,通过 `npm` 安装 less 或 sass 依赖,然后修改 `config-overrides.js` 配置文件以支持 less/sass 编译。接着,详细阐述如何使用 less/sass 编写样式。再者,安装 react-css-modules 并配置 webpack,使能样式模块化。最后,展示了如何结合使用 less/sass 和 react-css-modules,以提升前端开发的效率和代码质量。
|
24天前
|
前端开发
css中几种隐藏元素的方法
css中几种隐藏元素的方法
12 0
|
25天前
|
JavaScript 前端开发 iOS开发
js实用方法记录-动态加载css/js
js实用方法记录-动态加载css/js
19 0
|
27天前
|
前端开发
css声明方法
【4月更文挑战第14天】css声明方法
19 6