最全openCV实践项目:银行卡卡号识别_thresh,ref= cv2(1)

  • 返回排序后的轮廓。
礼帽操作

tophat = cv2.morphologyEx(gray, cv2.MORPH_TOPHAT, rectKernel)

  • 原图-开运算,本次实验用它获得我们想要保留的部分。
  • 开运算:先腐蚀后膨胀。
闭运算

gradX = cv2.morphologyEx(gradX, cv2.MORPH_CLOSE, rectKernel)

  • 先膨胀后腐蚀,本次实验目的是将每组数“模糊处理”使其连在一起。
模板匹配

res = cv2.matchTemplate(img, template, cv2.TM_SQDIFF)

  • 模板匹配和卷积原理很像,假如原图形是AxB大小,而模板是axb大小,则输出结果的矩阵是(A-a+1)x(B-b+1)。
  • TM_SQDIFF:计算平方不同,计算出来的值越小,越相关
  • TM_CCORR:计算相关性,计算出来的值越大,越相关
  • TM_CCOEFF:计算相关系数,计算出来的值越大,越相关
  • TM_SQDIFF_NORMED:计算归一化平方不同,计算出来的值越接近0,越相关
  • TM_CCORR_NORMED:计算归一化相关性,计算出来的值越接近1,越相关
  • TM_CCOEFF_NORMED:计算归一化相关系数,计算出来的值越接近1,越相关

min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)

  • 最小值最大值及其坐标位置,具体看模板匹配使用的方法是什么。
更多初级知识点:

openCV第三篇_老师我作业忘带了的博客-CSDN博客

三、代码部分

3.1 代码讲解

3.1.1 处理模板
  • 导包
import cv2
import numpy as np
from imutils import contours # 排序操作,也可以不用。
  • 定义绘图展示函数
def cv_show(name, img):
    cv2.imshow(name, img)
    cv2.waitKey(0) # 按键结束
    cv2.destroyAllWindows()

最全openCV实践项目:银行卡卡号识别_thresh,ref= cv2(1)_第1张图片

  • 模板读取、灰度、二值化
# 读取模板图像
img = cv2.imread('ocr_a_reference.png')

# 转换为灰度图 也可读取时直接转换
ref = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 二值图像
ref = cv2.threshold(ref,

你可能感兴趣的:(程序员,opencv,人工智能,计算机视觉)