ISBN码识别

  • 输入图像
  • 灰度化处理
  • 去噪处理
  • 二值化处理
  • 倾斜图像修正
  • 截取 ISBN 号所在行
  • 字符分割处理
  • 字符识别处理
  • 某些可以使用的函数

国际标准书号。这个号码印刷在每本图书封底(或护封)的右下角,由一组用四个分割
线“-”隔开的 13 个数字。例如:ISBN 978-7-111-47818-8。其中, ISBN987 代表是中国,7 代表分类,111代表出版社编号,47818 代表本书在出版社所有出版书中的编号,9 是校验码,即:用 1 分别乘 ISBN 的前12 位中的奇数位,用 3 乘以偶数位,乘积之和以 10 为模,用 10 减去此模,即可得到校验位的值,其值范围为 0-9。例S=9* 1+7 * 3+8 * 1+7 * 3+1 * 1+1 * 3+1 * 1+4 * 3+ 7 * 1+8 * 3+1 * 1+ 8 * 3=132,132%10=2,10-2=8,因此校验码即为 8。在该码的下方有一个条形码,条形码的下方写着 13 个数字,与 ISBN 后面的数字是相同的

输入图像

  1. 用OpenCV函数读入图像
    彩色图为一个三维数组,灰度图为二维数组
    图像文件在计算机中存储的都是每一个像素对应的颜色值,由RGB三通道颜色空间合成,通俗来讲就是将三个分别只有==R(red),G(green),B(blue)==的矩阵叠加而成,R.G.B为三个二维数组,数组值为0-255

  2. 图像类别:
    (1)24位真彩色图像:三维数组表示
    (2)8位灰度图:二维数组,一位要么是1要么是0,0-1表示256中状态,需要8位
    (3)1位黑白图(二值图),0-黑色 1-白色

灰度化处理

  1. 将 24 真彩色图转换为灰度图像
    在自然界中,颜色本身非常容易受到光照的影响,RGB变化很大。因此,在进行图像处理之前,至关重要的一步就是将图像转化为灰度图。对于彩色转灰度,共有三种方式式:
    Gray = R* 0.299 + G* 0.587 + B*0.114(加权法)
    Gray = (R+G+B)/3(平均法)
    Gray=max(R,G,B)(即找出三者的最大值)
  2. 作出该图的灰度直方图
    把图片中每一个像素出现的次数统计出来。请根据给出的灰度值矩阵统计出此图的灰度直方图,即统计每一个灰度值出现的频数,灰度直方图是反映一幅图片中各灰度级像素出现的频率与灰度级之间的关系

去噪处理

  1. 中值滤波
    在处理图像时,由于噪声的影响处理识别的效果并不是很好。为了尽可能保存图像原
    本信息,我们需要在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。中值滤波采
    用非线性的方法,它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘,选择
    适当的点来替代污染点的值,所以处理效果好。对一个图像的像素值 N 行 M 列的矩阵,我
    们保留其边缘像素值,对于其他数值,我们取以它中心的 3*3 矩阵,里面有 9 个像素点,
    我们将 9 个像素进行排序,最后将这个矩阵的中心点赋值为这九个像素的中值。并对赋值
    后的矩阵继续进行下一像素的运算,直至全部完成。

二值化处理

  1. 找最小的值做图像分割
    对ISBN号图像进行一系列处理之后,我们要将图像中的ISBN号与背景分离开来,以便于下一步对ISBN号进行分割的处理。对一幅图像进行分割,是利用图像要提取的目标与背景在灰度上的差异,通过设置阈值来将像素级分成若干
    类,从而实现目标与背景分离。
  2. 标识每一个数字图元区域
    给出一幅二值图图片,即图像的亮度值只有两个状态:0 和 1,接下来就可以进行连通区域的分析了,也就是说它通过对白色像素(目标)的标记,让每个单独的点形成一个被标识的连通区域,在此过程中,常见的寻找连通区域的方法为 4 邻域和 8 邻域,4 邻域包含上下左右四个点,8 邻域包含上下左右及对角线总共八个顶点,若顶点的图像亮度值相同,认为它们可以形成一个区域,标注为同一个数字,以此类推,找到所有的图元区域。

倾斜图像修正

截取 ISBN 号所在行

字符分割处理

  1. 做垂直投影
  2. 提取每一个数字的最小平行外接矩形
    在对 ISBN 图像进行识别时,通过对 ISBN 序列进行垂直投影,即对 ISBN 字
    符区域进行从左到右的扫描,依次检测每一个坐标的投影数值,当我们发现像
    素值为 1 的点时,我们就认为找到一个字符的左边界,继续向右扫描到最后一
    个像素值为 1 的点时,我们就认为找到了一个字符的右边界。对每一个垂直投
    影得到的字符区域,我们再进行水平投影,得到一个最小的外接矩形区域。

字符识别处理

  1. 数字图像尺寸归一化:将图像调整到同样大小
    最近邻插值法:
    即定义左上角第一个像素值坐标为(0,0),横轴向右,纵轴向下,例如原图像为 m 行 n 列,我们要实现的统一的图像大小为 p 行 q 列,则在新图像中坐标为(x,y)的像素值为原图像坐标为(x*(m/p),y*(n/q))对应的值(小数则向下取整)。
  2. 再进行模板识别,将模板用二维数组装起来,然后再逐一比对

某些可以使用的函数

  1. 灰度、二值化处理
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
_,binary = cv.threshold(gray,0,255,cv.THRESH_OTSU)
#cv.imshow("binary",binary)

ISBN码识别-DA数据结构二级项目相关推荐

  1. 燕山大学数据结构二级项目实验报告

    摘要 [摘  要]国际标准书号ISBN由13位数字组成.前三位数字代表图书,中间的9个数字分为三组,分表示组号.出版社号和书序号,最后一个数字是校验码从1968年英国的"标准书号" ...

  2. 前端实现二维码识别wechat-qrcode-ocr-wasm

    简介 为了实现拍照上传的二维码识别.在vue项目中引入npm包(需要浏览器支持webassembly) npm install wechat-qrcode-ocr-wasm 安装后拷贝 /node_m ...

  3. 车架号汽车vin码识别

    关键词:vin码识别.车架号识别.汽车vin码识别 汽车VIN码识别SDK开发包,是针对移动互联网数据采集业务推出的一款专业的OCR开发包 汽车VIN码识别 SDK开发包,主要应用在智能手机IOS与A ...

  4. 燕山大学数据结构与算法课程实践——ISBN号识别系统的设计与开发

    项目背景         ISBN 号是国际标准书号的简称,它是国际标准化组织于 1972 年公布的一项国际通用的出版物统一编号方法.所有正规出版的普通图书版权页都有 ISBN 号, ISBN 是 i ...

  5. 燕山大学课程实践项目报告:ISBN号识别系统的设计与开发

    文章目录 摘要 前言 正文 一.研究内容的基本原理 二.所采用的研究方法及相关工具 三.项目的方案设计 四.核心代码实现 1.读取图片 2.将原图转化为灰度图 3.去噪处理 4.迭代法求阈值 5.水平 ...

  6. 在网页项目中集成扫码枪设备,实现二维码扫码识别实战

    我寻寻觅觅,寻寻觅觅一个可以二次开发的扫码枪.然而,店小二总是告诉我:"这个--额--额--俺也不知道呢--".本文将一步一步实现在网页项目中集成扫码枪设备. 目录 1.项目背景 ...

  7. Java毕设项目疫苗药品批量扫码识别追溯系统计算机(附源码+系统+数据库+LW)

    Java毕设项目疫苗药品批量扫码识别追溯系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也 ...

  8. 基于SpringBoot+Vue车牌识别的智能停车场项目源码

    List item ##基于SpringBoot+Vue车牌识别的智能停车场项目项目说明 智能停车场管理系统在住宅小区.大厦.单位的应用越来越普遍.而人们对停车场管理的要求也越来越高,智能化程度也越来 ...

  9. OpenCV(项目)二维码识别(二维码、条形码)

    目录 过程 1.获取图片中的二维码信息 2.获取视频中的二维码信息 3.检测出二维码框 4.显示数据 5.添加数据,判断二维码是否授权 5-1:.添加数据 5-2.读取文件信息,放入数组 5-3.判断 ...

最新文章

  1. Struts2获取request三种方法
  2. 计算机网络第三章-数据链路层
  3. Vue eslint 团队代码规范
  4. IntelliJ IDEA lombok插件的安装和使用
  5. Linux系统编程 -- 进程控制 进程终止
  6. 动态规划:最长上升子序列(二分算法 nlogn)
  7. Java Persistence with MyBatis 3(中文版) 第二章 引导MyBatis
  8. Moodle 3.7安装
  9. Qt Qml 开发超高清 4K、8K 视频直播视频客户端
  10. Cesium视频教程
  11. 智能功放 ACS 保护
  12. 解决方案|致拓T8数字化ERP
  13. 史上最完整的Android开发工具集合(附带下载地址)
  14. No qualifying bean of type报错问题处理
  15. 使用TCP/IP协议栈指纹进行远程操作系统辨识
  16. android 自动翻页插件,网页自动翻页Chrome插件下载
  17. win10向右键新建中添加可创建的文件类型
  18. 汇编指令: JO、JNO、JB、JNB、JE、JNE、JBE、JA、JS、JNS、JP、JNP、JL、JNL、JNG、JG、JCXZ、JECXZ、JMP、JMP...
  19. 抓包工具——IE浏览器HttpWatch插件
  20. 互联网人才结构与流动报告2021

热门文章

  1. 在linux中使用getch()函数
  2. 句法分析(PCFG,Transition-based parsing)
  3. 全球与中国液体合成橡胶(LSR)市场深度研究分析报告
  4. JDBC Connection [com.mysql.jdbc.Connection@2bbf4094] will not be managed by Spring 的一个可能错误
  5. 有理数域上lamada矩阵(方阵)化标准形的实现
  6. 【科创人独家】EasyStack王瑞琳:All In超级领先,知易行难
  7. 【硬创邦】跟hoowa学做智能路由(十三):网络音箱之Android篇
  8. java开发工程师面试自我介绍_Java程序员面试如何自我介绍HR这一关
  9. session Storage
  10. java项目日志打印总结