- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
从这个线程继续:
What are good algorithms for vehicle license plate detection?
我开发了我的图像处理技术来尽可能强调车牌,总体而言我很满意,这里有两个示例。
现在是最困难的部分,实际检测车牌。我知道有一些边缘检测方法,但我的数学很差,所以我无法将一些复杂的公式转化为代码。
到目前为止,我的想法是遍历图像中的每个像素(基于 img 宽度和高度的循环)由此将每个像素与颜色列表进行比较,由此检查算法以查看颜色是否保持差异化在车牌白色和文本的黑色之间。如果这恰好是真的,这些像素将被构建到内存中的新位图中,然后一旦停止检测到该图案,就会执行 OCR 扫描。
我很感激对此的一些意见,因为它可能是一个有缺陷的想法,太慢或太密集。
谢谢
最佳答案
“查看颜色是否始终区分车牌白色和文本黑色”的方法基本上是搜索像素强度多次从黑色变为白色的区域,反之亦然。边缘检测可以完成基本相同的事情。但是,实现自己的方法仍然是一个好主意,因为您会在此过程中学到很多东西。哎呀,为什么不两者都做,并将你的方法的输出与一些现成的边缘检测算法的输出进行比较?
在某些时候,您会想要一个二值图像,比如黑色像素对应“非字符”标签,白色像素对应“是字符”标签。也许最简单的方法是使用阈值函数。但这只有在字符已经以某种方式被强调的情况下才会有效。
正如有人在您的其他帖子中提到的那样,您可以使用黑帽运算符来做到这一点,结果如下:
如果您使用 Otsu 的方法(自动确定全局阈值级别)对上面的图像进行阈值处理,您会得到:
有几种方法可以清理该图像。例如,您可以找到连接的组件并丢弃那些太小、太大、太宽或太高而不能成为字符的组件:
由于图像中的字符相对较大且完全连接,因此此方法效果很好。
接下来,您可以根据邻居的属性过滤剩余的组件,直到您拥有所需数量的组件(=字符数)。如果你想识别字符,你可以计算每个字符的特征并将它们输入分类器,分类器通常是用监督学习构建的。
当然,上述所有步骤只是一种方法。
顺便说一下,我使用 OpenCV + Python 生成了上面的图像,这是计算机视觉的绝佳组合。
关于c# - 续-车牌检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4727119/
我的公司正在寻找任何解决方案-必要时支付软件没有问题-可以“简单地”检查不确定数量的照片(例如从1到400+),检测车牌并像Google在Google中一样对其进行删除/模糊处理 map 。例如。图片
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
我是一名优秀的程序员,十分优秀!