消除二值图像中的字符倾斜

2023-12-24

我正在研究车牌识别。问题是我必须消除二值图像中的字符倾斜,以提高模板匹配的准确性。

我已经做了很多预处理来删除图像中不必要的像素,并且我可以将字符分割出来。但不幸的是,它们是倾斜的。

从...转换为灰度到二进制

然后..预处理技术..

分割后..

从最后一张图像中可以看出,字符是倾斜的,这将导致执行识别目的的模板匹配不准确。

大多数研究人员都使用霍夫变换来执行去偏操作,但是有没有更简单的方法来做到这一点呢?


有一些方法可以解决这个问题。一些在匹配部分以避免unskew操作本身是这样的:

  • OCR 和字符相似度 https://stackoverflow.com/a/22879053/2521214

但你想要unskew so:

  1. 检测旋转角度/倾斜斜率

    获取边界框,然后投射垂直扫描线并记住所有这些点的第一个击中点和最后一个回归线

  2. 通过它旋转/倾斜回来

    所以要么使用atan2获取角度或直接基于基向量(一是直线,二是其垂直向量)构造2D齐次3x3变换矩阵。欲了解更多信息,请参阅:

    • 理解 4x4 齐次变换矩阵 https://stackoverflow.com/a/28084380/2521214
  3. 现在,旋转/未倾斜的图像仍将以低得多的速率倾斜花蕾

    所以你可以申请#1,#2也在水平轴上,但这次你需要unskew仅(不使用旋转)。通常剩余偏斜率很小,因此这一步不是必需的。

[notes]

您可以通过过滤掉错误的点或仔细选择扫描线的起点来提高精度,以便它们击中字符的正确位置(您显然知道字符数)。

[编辑1] 小例子

这是图像输出的小示例(负数,因为我的函数需要白皮书和黑色字体):

正如您所看到的,旋转和倾斜要小得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

消除二值图像中的字符倾斜 的相关文章

  • 序列和与 GCD

    大约一个月前 我在编程挑战中遇到了这个问题 但社论尚未发布 所以我在这里问 有一个大小为 N 的数组 A 求 A 的 K 个长度子序列的总和 GCD Example 如果 A 1 2 3 且 K 2 1 2 3 总和 1 GCD 3 1 3
  • 如何在 JavaScript 中构建树模式匹配算法?

    好吧 这是一个有点复杂的问题 但是 tl dr 基本上是如何使用 模式树 解析 实际树 如何检查特定的树实例是否与特定的模式树匹配 首先 我们有我们的结构模式树 模式树通常可以包含以下类型的节点 sequence节点 匹配一系列项目 零个或
  • matlab中的排列函数是如何工作的

    这是一个有点愚蠢的问题 但我似乎无法弄清楚排列在 matlab 中是如何工作的 以文档为例 A 1 2 3 4 permute A 2 1 ans 1 3 2 4 到底是怎么回事 这如何告诉 matlab 3 和 2 需要交换 哇 这是我迄
  • 如何为多边形创建内部螺旋?

    对于任何形状 我如何在其内部创建类似形状的螺旋 这与边界 使用 Minkowski 和 类似 尽管它会是相同形状的螺旋 而不是在形状内部创建相同的形状 我找到了这个 http www cis upenn edu cis110 13su le
  • 如何更改Plotyy第二轴的颜色和字体大小?

    我使用 MATLAB 的plotyy 函数绘制了两条曲线 AX H1 H2 plotyy voltage span amplitude voltage span Ca SR The problem is that I cannot chan
  • PHP - 获取base64图像字符串解码并保存为jpg(生成空图像)

    嗨 我实际上是通过 ajax 发送一个 base64 图像字符串到一个 php 脚本 该脚本只是解码字符串并将内容保存为 jpg 文件 但结果是一张空图像 这怎么可能 PHP脚本 uploadedPhotos array photo 1 p
  • 如何在 Microsoft 报告中显示字节数组中的图像

    我使用报表文件和 ReportViewer 控件来显示在运行时从对象动态加载数据的报表 我需要显示一个以字节数组形式存储在对象中的图像 PictureBox 的值当前设置为 First Fields ImageData Value dtst
  • Java:ImageIcon 与 Image 的区别

    谁能以菜鸟的方式向我解释一下两者之间有什么区别图像图标 and ImageJava 中的类 对象 谢谢 它们的性质和应用是不同的 Image http docs oracle com javase 6 docs api java awt I
  • Python 旅行商贪婪算法 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 因此 我为旅行推销员问题创建了一种排序 并按 x 坐标和 y 坐标进行排序 我正在尝试实施贪婪搜索 但无法做到 此外 每
  • 坐标算法 - 绕中心旋转

    通过查看这张图片 我想您会很好地理解我的问题 图片已删除 网址不再有效 现在返回广告 所以基本上我想要一个函数 它接受一个对象作为参数 并根据我之前添加的对象数量为该对象提供正确的坐标 假设我将所有这些对象添加到一个数组中 objectAr
  • heapq.nlargest 的时间复杂度是多少?

    我在看演讲者说 获得t列表中最大的元素n元素可以在O t n 这怎么可能 我的理解是创建堆将是O n 但是复杂度是多少nlargest本身就是O n t or O t 实际的算法是什么 在这种情况下 说话者是错误的 实际成本是O n log
  • 重写修改后的 goto 语义的算法

    我有一大堆使用旧的自行设计的脚本语言编写的遗留代码 我们将它们编译 翻译成 javascript 该语言有条件跳转 跳转到标签 与普通 goto 语句的区别在于 不可能向后跳转 该语言中没有嵌套的 if 语句或循环 由于 javascrip
  • 我应该对算法使用递归还是记忆化?

    如果我可以选择使用递归或记忆来解决问题 我应该使用哪一个 换句话说 如果它们都是可行的解决方案 因为它们提供了正确的输出并且可以在我正在使用的代码中合理地表达 那么我什么时候会使用其中一个而不是另一个 它们并不相互排斥 您可以同时使用它们
  • 图像处理:什么是遮挡?

    我正在开发一个图像处理项目 我遇到了这个词闭塞在许多科学论文中 遮挡在图像处理中意味着什么 字典只是给出了一般的定义 谁能使用图像作为上下文来描述它们 遮挡意味着您想看到某些内容 但由于传感器设置的某些属性或某些事件而无法看到 它到底如何表
  • 如何使使用 css 调整大小的图像在 IE 中看起来不错?

    当使用 css 宽度 高度或属性宽度 高度缩放图像时 IE6 和 IE7 无法很好地缩放网页中的图像 我不确定它默认使用哪种算法 但这不好 在这些浏览器中缩放时 缩放图像会显示锯齿伪影 幸运的是 有一种方法可以通过简单的 css 规则强制
  • 总和不小于 key 的数组的最小子集

    给定一个数组 假设为非负整数 我们需要找到最小长度子集 使得元素之和不小于 K K 是作为输入提供的另一个整数 是否有可能找到时间复杂度为 O n n 的大 oh 的解决方案 我目前的想法是这样的 我们可以在 O n log n 中对数组进
  • 求先递增后递减列表的最大值和最小值

    我尝试用谷歌搜索这个问题 但没有取得太大成功 我确信这个问题或类似问题有一个技术名称 但我似乎找不到答案 给定一个列表L整数 即严格递增 然后严格递减 找到该列表的最大值和最小值 例如 L可能 1 2 3 4 5 4 3 2 or 2 4
  • 在 Android 中调整可绘制对象的大小

    我正在为进度对话框设置一个可绘制对象 pbarDialog 但我的问题是我想每次调整可绘制的大小 但不知道如何调整 这是一些代码 Handler progressHandler new Handler public void handleM
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 如何制作 Bash 脚本来查找项目中未使用的图像?

    如何制作一个 Bash shell 脚本 它可以识别所有 jpg gif 和 png 文件 然后识别文件夹中任何文本文件中哪些文件未通过 url href 或 src 链接 这就是我开始的 但我最终得到了与我想要的相反的结果 我不想知道引用

随机推荐

  • jQuery Mobile 弹出窗口未在 .popup('open') 上打开

    我正在尝试使用 jQuery Mobile 1 3 1 的弹出窗口在登录凭据错误时警告用户 我从 jquerymobile 文档中的基本模板开始 但我无法让它与 popupBasic popup open 如果我这样使用它 div div
  • 如何在加特林的Json Body中添加随机值?

    我需要每次创建一个随机正整数并将其发送到加特林中的 Json 主体 我使用下面的代码创建一个随机正整数 val r new scala util Random val OrderRef r nextInt Integer MAX VALUE
  • 为什么在套索回归中计算 MSE 会给出不同的输出?

    我正在尝试对 lasso2 包中的前列腺癌数据运行不同的回归模型 当我使用 Lasso 时 我看到两种不同的方法来计算均方误差 但它们确实给了我完全不同的结果 所以我想知道我是否做错了什么 或者这是否仅仅意味着一种方法比另一种方法更好 Ne
  • 启用 httpd-vhosts.conf 后 WAMP 服务器未运行

    我尝试在 WAMP 安装上启用虚拟主机 但如果启用 http vhosts conf WAMP 服务器将不会运行 并且图标保持橙色 这是我的主机文件 127 0 0 1 localhost 127 0 0 1 test localhost
  • 关系方法必须从 Laravel 4 中未查看的模型调用返回 Illuminate\Database\Eloquent\Relations\Relation 类型的对象

    我有一个模型Ability 它属于另一个模型AbilityType
  • iOS 开发者企业计划会员资格到期前续订

    我收到了苹果公司发来的关于企业会员计划续订的电子邮件 以下是我的相关问题 计划到期前续订对分发证书有影响吗 如果在到期前续订程序 使用分发证书签名的应用程序是否可以继续运行而不会出现任何问题 续订后到期前是否需要再次分发企业应用程序 感谢您
  • 从命令行对不同长度的十六进制数进行排序?

    如果我有一个不同长度的十六进制数文件 例如 1F b c 如何从命令行对它们进行排序 欢迎使用 Linux 解决方案 尽管我将使用 Windows 和 cygwin 或 gnuwin32 注意 我显然不能使用 SORT 因为这会使它们保持错
  • 在Windows中,有没有办法将errno转换为HRESULT?

    我知道HRESULT FROM WIN32宏将 Win32 错误代码转换为 HRESULT 有什么方法可以从errno error 简而言之 不 As of http msdn microsoft com en us library 581
  • Raphael:通过简单的无限动画逐渐减慢动画速度

    这个问题在本质上与两年前提出的另一个问题类似 为什么 Raphael 的帧速率在这段代码上变慢了 https stackoverflow com questions 2733613 why does raphaels framerate s
  • MySQL - 查询所有没有预约的用户

    如果我有两个表 用户和约会 我将如何查询数据库以找到类似以下内容的内容 SELECT FROM users WHERE none of appointments user user id 我假设我需要某种类型的约会表连接 只是不知道从哪里开
  • Apache 缓存 javascript 资源?

    不久前我在使用 javascript 资源时遇到了麻烦 当我对它们进行更改时 它们不会生效 文件将变成无效的 javascript 萤火虫抛出错误和警告 我注意到我的更改没有出现 并且特殊字符被添加到文件末尾 再进一步挖掘 我注意到特殊字符
  • JavaScript 圆角透明背景

    我正在寻找一个可以在上面创建圆角的 JavaScript 库div具有透明背景的标签 使得父元素的背景颜色 图像在圆角处可见 以圆角为例without透明背景 看看左边的菜单这一页 http chaletsdesbouleaux com 请
  • Angular UI-Router 将根 url 发送到 404

    我有一个令人恼火的问题ui router 一切都按我想要的方式进行 所有错误的 URL 都会发送到404状态 但是 即使当 url 为时我的默认状态正确呈现 网址为 被重定向到 404 我怎样才能提供服务default向双方声明 and a
  • 更改 jquerymobile 上的自定义导航栏图标

    尚未找到更改具有多个页脚的页面上的自定义导航栏图标的解决方案 这就是我目前正在使用的 live menu ui icon css background url btn on gif important live menu ui icon c
  • 尝试在 for 循环中将元素添加到 xml 文件时出现 HIERARCHY_REQUEST_ERR

    正如标题所示 我尝试使用 for 循环将元素添加到 xml 文档中 我有一个ArrayList称为的字符串names我希望迭代 并为每个名称创建一个
  • 尝试打开 Pandas 时历史记录保存线程错误

    我刚刚在工作的远程桌面上安装了 IPython 我必须在桌面上创建一个快捷方式来连接到 IPython 因为远程桌面无法访问互联网 我能够成功打开 IPython 笔记本 但是 当我尝试导入 pandas 时 import pandas a
  • 如何测量执行的汇编指令的数量?

    我想以某种方式从二进制文件中获取 已执行的汇编程序指令的数量 考虑下面的代码 if password 0 p if password 1 a printf Correct Password n 那么如果我用例如启动程序 abc 它不会采用第
  • 迭代器不属于其分配的文本缓冲区

    这是一个简单的骨头save as 功能 gint save as GtkWidget parent struct buffers B GtkWidget file chooser gtk file chooser dialog new Sa
  • Javascript 模块模式、原型和 Google Closure

    我无法让此代码结构在 Google Closure 编译器的混淆中幸存下来 这是一些示例代码 var MyModule function function myModule Constructor function moduleFoo ur
  • 消除二值图像中的字符倾斜

    我正在研究车牌识别 问题是我必须消除二值图像中的字符倾斜 以提高模板匹配的准确性 我已经做了很多预处理来删除图像中不必要的像素 并且我可以将字符分割出来 但不幸的是 它们是倾斜的 从 转换为灰度到二进制 然后 预处理技术 分割后 从最后一张