比较两个图像时查找不同区域边缘的算法或工具

Algorithm or tool for finding edges of a different area when comparing two images

我正在从事一个社区项目,其目标是减少超速违规行为。为了识别汽车的牌照,我使用 OpenALPR。问题是它对相机位置很敏感,即角度,当角度大于 20 度时,OpenALPR 无法检测到 LP(是的,我已经阅读了关于良好相机位置的建议,但 IRL 有时它们不能满意)。

我发现问题是没有检测到LP区域。但是,手动裁剪图像以仅包含汽车而不对像素进行任何其他修改(如过滤)可以解决问题,并且 OpenALPR 能够检测到 LP 区域。

我正在寻找可以自动裁剪的解决方案。可以比较两个图像的算法或工具"base"和"target"和return目标图像中更改区域的坐标(左上角,右下角)。

替代解决方案是 OpenALPR 的不同配置文件。我正在试验最后几个小时,但没有成功。

基本图像将如下所示:

目标图片将如下所示:

(这只是视频中的两帧)

(原始图像尺寸更大,即 3840x2160)

是否有算法或工具可以帮助我自动执行此任务?

基本的方法是求差,即逐像素取RGB分量值的绝对差值。差异大的地方有检测

但这可能效果不佳(对于给定的图像也是如此),因为两张图片可能略微未对齐,并且风可以移动植被。

所以我推荐

  • 将图像分辨率降低一个重要因素(比如 8);

  • 模糊缩小后的图像;

  • 计算绝对差;

  • 保持成分间的最大差异;

  • 二值化阈值;

  • 最后使用连通分量标记找到最重要的斑点并消除残留干扰。

一定要刷新背景图(当你确定没有车的时候),避免日常漂移的效果(总是有缓慢的变化)。归一化图像强度以阻止环境照明的变化也可能有用(通过的云 f.i。)。