主要观点总结
本文介绍了一个以项目为导向的教程,学习识别信用卡上的数字并将其打印在原图片上。文章详细介绍了整个过程的步骤,包括模板读入、模板预处理、输入图像预处理和模板匹配。
关键观点总结
关键观点1: 模板读入和部分包的导入
介绍如何导入必要的包和函数定义,为后续的图像处理做准备。
关键观点2: 模板预处理
详细描述如何将模板数字分开并排序,包括转换为灰度图、二值化、轮廓检测等步骤。
关键观点3: 输入图像预处理
解释如何将信用卡上的数字提取出来,包括初始化卷积核、读入图片、调整图片大小、转换为灰度图、tophat操作、边缘检测等步骤。
关键观点4: 模板匹配
介绍如何将处理后的模板数字与待识别的图片进行匹配,包括查找轮廓、筛选符合条件的轮廓、分组处理、计算匹配度等步骤。
文章预览
前 言 实践是检验真理的唯一标准。 因 为觉得一板一眼地学习OpenCV太过枯燥,于是在网上找了一个以项目为导向的教程学习。话不多说,动手做起来。 1、案例介绍 提供信用卡上的数字模板: 要求: 识别出信用卡上的数字,并将其直接打印在原图片上。虽然看起来很蠢,但既然可以将数字打印在图片上,说明已经成功识别数字,因此也可以将其转换为数字文本保存。车牌号识别等项目的思路与此案例类似。 示例: 原图 处理后的图 步 骤 大致分为如下几个步骤: 1.模板读入 2.模板预处理,将模板数字分开,并排序 3.输入图像预处理,将图像中的数字部分提取出来 4.将数字与模板数字进行匹配,匹配率最高的即为对应数字。 1、模板读入,以及一些包的导入,函数定义等 import cv2 as cv import numpy as np import myutils def cv_show(name, img): # 自定
………………………………