使用库:

from imutils import contours  # 轮廓函数
import numpy as np
import argparse    #参数化函数
import cv2
import myutils    #自定义函数

1、imutils库:

imutils库可以比直接使用OpenCV的某些功能更方便使用。

1.1:imutils.find_function(" ")

按功能名称查找OpenCV功能函数。

1.2:图像平移

translated = imutils.translate(img,x,y)

img :图像

x:沿x轴方向移动的像素个数

y:沿y轴方向移动的像素个数

1.3:图像旋转

img_rotate1 = imutils.rotate(img, angle)

angle:旋转角度,按逆时针旋转

rotate_round()可按顺时针旋转。

1.4:图像缩放:

img_resized = imutils.resize(img, width = ,height=)

不同于OpenCV中需要指定宽高,imutils可以自动保持图像原有宽高比。

一般若有参数 width 则按宽度的比例进行缩放。

1.5:转BGR2RGB:

imutils.opencv2matplotlib(img)

防止plt.imshow(img)出错。

注:Opencv默认用BGR格式打开图片,motplotib用RGB格式打开图片

1.6:图像骨架提取:

skeleton = imutils.skeletonize(gray, size=(3, 3))

假如图片是白图像黑背景,该函数可以画出图片上图像的结构。函数包含两个必须参数,第一个是单通道图片,第二个参数是size(核大小)。还有一个可选参数structuring,默认为cv2.MORPH_REC——核大小相当于是一个粒度,越小需要处理的时间越长。

2、argparse库

argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。

2.1、创建解释器:

ap = argparse.ArgumentParser(description='')

description:命令行的帮助开始文字,一般情况只会用到这个参数。

2.2、添加参数:

ap.add_argument()

2.2.1、name or flags:指定参数形式,一般写一个长参数和一个短参数,如 "-i","--image"。

2.2.2、default:若没有出现这个参数,则使用指定的默认值。

出现则指定参数值,如default = "test.png"。

2.2.3、type:指定传进参数数据类型。如type = int。

2.2.4、choices:设置参数范围,若参数不是字符串类型记得指定为字符串类型。

如:ap.add_argument(“-y”, choices=[‘a’, ‘b’, ‘d’])

2.2.5:required:一般如"-i"这种的参数为可选的,但是若required = True 则为必须的了。所以在参数指定时,要注意required参数的值。

2.2.6:metavar:参数名字,显示帮助信息时用到。

如  parser.add_argument(“-i”, metavar=”an image”)

2.2.7:nargs:指定参数后面的value有几个。

例如,我们希望使用-n 1 2 3 4,来设置n的值为[1, 2, 3, 4]

parser.add_argument(“-n”, “–num”, nargs=”+”, type=int)

这里nargs=”+”表示,如果你指定了-n选项,那么-n后面至少要跟一个参数,"+"表示至少一个,"?" 表示一个或0个,0个或多个 。

2.2.8:help:设置帮助信息。

2.3、参数解析:

ap.parse_args()

实例:

ap = argparse.ArgumentParser(description='传输图片')
ap.add_argument("-i", "--image", default='E:\ImageRecognition\XYKshibie\images\credit_card_03.png',required=False, help="path to input image")
ap.add_argument("-t", "--template",default='E:\ImageRecognition\XYKshibie\images\ocr_a_reference.png',required=False, help="path to template OCR-A image")
args = vars(ap.parse_args())   #参数解析

其中required参数可改为True,进行参数默认化输入。

vars(object)  函数返回对象object的属性和属性值的字典对象。

图像处理学习--银行卡号码识别(1)相关推荐

  1. 原创:谈谈计算机图像识别技术之身份证号码识别

    原创:谈谈计算机图像识别技术之身份证号码识别 作者:刘常军(2014-1-21)   前两天看到一篇文章,说支付宝钱包的iOS版和Android版已经升至8.0,只要通过摄像头对准银行卡进行扫描,支付 ...

  2. 谈谈计算机图像识别技术之身份证号码识别

    转载自 http://www.cnblogs.com/liu7537/p/3528968.html 作者:刘常军(2014-1-21)   前两天看到一篇文章,说支付宝钱包的iOS版和Android版 ...

  3. 基于深度学习的身份证号码识别(OCR,Opencv,Pytorch)

    文章目录 前言 模型结构 数据集 模型训练 项目结构&源码下载 前言 最近做了一个身份证号码识别项目,在此分享一下.视频效果如下所示,共有两种识别方法,其一就是直接上传身份证号码的截图进行识别 ...

  4. 【opencv学习】银行卡的识别

    今天做一个小项目,运用已经学到的知识,做一个银行卡的识别. 银行卡的图像如下 这个银行卡是的数字模板是 现在我的任务是识别中间的16个数字 大致思路是: 1:读取模板,获得每个数字的模板信息 2:读取 ...

  5. iOS身份证号码识别

    最近不少简友说git上下载下来的代码报各种问题,因为包含的库都比较大,所以大家在pod的时候耐心等待,另外我已经将代码适配到了iOS10. 一.前言   身份证识别,又称OCR技术.OCR技术是光学字 ...

  6. java毕设项目车牌号码识别系统开源了,很好玩,建议尝试

    1.介绍 这是一个基于spring boot + maven + opencv 实现的Demo教程项目贯穿样本处理.模型训练.图像处理.对象检测.对象识别等技术点,以学习交流为目的,代码注释超多,文档 ...

  7. 使用PYTHON图像识别实现车牌号码识别

    实现车牌号码识别需要使用图像识别技术,可以使用 Python 进行开发. 常用的 Python 库有 OpenCV 和 TensorFlow,它们可以帮助你实现图像处理和深度学习算法. 首先,需要对图 ...

  8. OCR识别:纸币(人民币)号码识别

    随着近几年支付宝.微信等非现支付手段的兴起,现金支付好像离我们的生活越来越远,笔者现在出门基本不带钱包,凭着手机就可以走遍全中国,尤其笔者目前从事支付宝和微信推广刷脸支付方面的工作,感觉若干年后真的如 ...

  9. 数字图像处理学习笔记(一):特征检测和匹配概述

    数字图像处理学习笔记(一):特征检测和匹配概述 参考博客: 特征点的匹配 SIFT特征详解 数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法 1.特征点概述 如何高效且准确的匹配出两个不同 ...

  10. OpenCV与图像处理学习十七——OpenCV人脸检测(含代码)

    OpenCV与图像处理学习十七--OpenCV人脸检测(含代码) 一.人脸识别概要 1.1 人脸检测 1.2 人脸对齐(Face Alignment) 1.3 人脸特征提取(Face Feature ...

最新文章

  1. ntp服务器响应每秒请求数量,批量、增量接口并发问题和NTP协议
  2. 设置UIButton上面是image,下面是title
  3. 如何显示在线人数和所在位置
  4. 【干货】接地气的产品设计流程
  5. YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. /HTML/ 标签: yum 2014-05-26
  6. boost::safe_numerics::cpp相关的测试程序
  7. C语言实现随机生成0~100的数
  8. 有关android UI 线程
  9. 我的世界服务器显示不出地图,为什么我的世界服务器地图加载不了
  10. JAVA.SQL.SQLNONTRANSIENTCONNECTIONEXCEPTION: COULD NOT CREATE CONNECTION TO DATABASE SERVER. ATTEMPT
  11. 交叉编译 for arm-linux-gcc... no,QT4.8.6、tslib库移植到arm上配置出错!求大神指点
  12. Python游戏编程(Pygame)
  13. 2020计算机应用模拟题,2020年函授本科计算机应用基础课后作业、模拟题及答案...
  14. 最速下滑法c语言程序,最速下降法 C语言.doc
  15. wifi6无线网卡驱动linux,linux2.6.8内核装intel wifi link 5100无线网卡驱动的问题?
  16. wps图表横纵坐标怎么设置_wps怎么切换横纵坐标/excel图表怎么切换横纵坐标
  17. 东南大学计算机技术935专业考研经验分享
  18. 环境变量(PATH)的那些事
  19. 浅谈嵌入式技术的发展
  20. (二)ROS中控制机器人运动(示例运行)

热门文章

  1. Oracle 创建表详解(create table)
  2. HTML5+CSS网页设计概述
  3. 态度决定一切细节决定成败_字体设计可以决定设计的成败:选择字体的过程
  4. Linux tar打包命令详解
  5. java常用的对象转map的几种方式
  6. 怎么用python画sin函数图像_用python画三角函数
  7. Contexts for mac(程序快速调用工具)
  8. OpenGL读取灰度图生成地形
  9. Java常用软件下载地址
  10. 百度网盘破解版,满速下载不限速【转载,亲测有效】