opencv图像识别主要流程

这篇具有很好参考价值的文章主要介绍了opencv图像识别主要流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

函数的设置

为了使图像识别的流程更加直观,我们提前设置一个函数用于图像识别过程中每一步的图像展示。

def cv_show(name,img):
    cv2.imshow(name,img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

使用这个函数可以使得在图像识别过程中的每一步更加直观的展示出来,也可以用于检测每一步是否正确运行。

读取一个模板图像

我们进行图像识别的原理是将0-9十个数字的模板进行提取,然后一 一对银行卡进行一个模板匹配,以此来识别出我们需要的银行卡号。

因此,我们的第一步就是对数字模板进行读取。

img = cv2.imread("模板的路径")
cv_show('img',img)
opencv图像识别主要流程

接下来就是对这个模板进行一个轮廓检测,以此得到这个模板的图像信息。

  1. 转换成灰度图

ref = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv_show('ref',ref)
opencv图像识别主要流程

以上是转成灰度图的结果。

  1. 转换成二值图像

ref = cv2.threshold(ref,10,255,cv2.THRESH_BINARY_INV)[1]
cv_show('ref',ref)
opencv图像识别主要流程

这里涉及到了一个二值图像转换的函数cv2.threshold()

首先介绍简单阈值函数:cv2.threshold(src, thresh, maxval, type[, dst]),返回值为retval, dst

其中:

src是灰度图像

thresh是起始阈值

maxval是最大值

type是定义如何处理数据与阈值的关系。有以下几种:

选项

像素值>thresh

其他情况

cv2.THRESH_BINARY

maxval

0

cv2.THRESH_BINARY_INV

0

maxval

cv2.THRESH_TRUNC

thresh

当前灰度值

cv2.THRESH_TOZERO

当前灰度值

0

cv2.THRESH_TOZERO_INV

0

当前灰度值

注意:在上面的例子中,我们在尾部加了个[1],意思是我们只取第二个返回值dst,而一般来说,我们也只会使用该函数的第二个返回值dst

  1. 计算轮廓

refCnts = cv2.findContours(ref.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)[1]
cv2.drawContours(img,refCnts,-1,(0,0,255),3)
cv_show('img',img) 
opencv图像识别主要流程

这里用到了两个计算轮廓的函数。

cv2.findContours():

cv2.findContours(image, mode, method, contours=None, hierarchy=None, offset=None)

opencv图像识别主要流程
opencv图像识别主要流程

contour返回值

cv2.findContours()函数首先返回一个list,list中每个元素都是图像中的一个轮廓信息,list中每个元素(轮廓信息)类型为ndarray。len(contours[1]) 表示第一个轮廓储存的元素个数,即该轮廓中储存的点的个数。

hierarchy返回值

该函数还可返回一个可选的hiararchy结果,这是一个ndarray,其中的元素个数和轮廓个数相同,每个轮廓contours[i]对应4个hierarchy元素hierarchy[i][0] ~hierarchy[i][3],分别表示后一个轮廓、前一个轮廓、父轮廓、内嵌轮廓的索引编号,如果没有对应项,则该值为-1。

第一个数:表示同一级轮廓的下个轮廓的编号,如果这一级轮廓没有下一个轮廓,一般是这一级轮廓的最后一个的时候,则为-1。

第二个数:表示同一级轮廓的上个轮廓的编号,如果这一级轮廓没有上一个轮廓,一般是这一级轮廓的第一个的时候,则为-1。

第三个数:表示该轮廓包含的下一级轮廓的第一个的编号,假如没有,则为-1。

第四个数: 表示该轮廓的上一级轮廓的编号,假如没有上一级,则为-1。

cv2.drawContours():

cv2.drawContours(image, contours, contourIdx, color, thickness=None, lineType=None, hierarchy=None, maxLevel=None, offset=None)文章来源地址https://www.toymoban.com/news/detail-465708.html

opencv图像识别主要流程

到了这里,关于opencv图像识别主要流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • opencv 图像识别

      opencv的目标是使计算机可以快速准确地从数字图像中提取和分析特征。它使用了许多新的算法和技术,例如改进的模板匹配、基于统计的特征分析以及深度学习等。opencv支持多种平台,包括 Windows、 MacOS、 Linux和 Android,开发者可以使用 OpenCV提供的免费工具和 API进行图像识

    2024年02月05日
    浏览(18)
  • Opencv图像识别

    前些天发现了一个巨牛的 人工智能学习网站 ,通俗易懂,风趣幽默,忍不住分享一下给大家: 点击跳转 目录 一,轮廓检测 二,边缘检测 以下图为例:  灰度图直接提取轮廓: 得到的轮廓数量是1,即整个图的最外面的轮廓。 优化思路:先进行一定的二值化处理。 一般提

    2024年02月16日
    浏览(16)
  • opencv深度学习昆虫识别系统图像识别 python

    文章目录 0 前言+ 1 课题背景+ 2 具体实现+ 3 数据收集和处理+ 3 卷积神经网络+ 2.1卷积层+ 2.2 池化层+ 2.3 激活函数:+ 2.4 全连接层+ 2.5 使用tensorflow中keras模块实现卷积神经网络 4 MobileNetV2网络+ 5 损失函数softmax 交叉熵+ 5.1 softmax函数+ 5.2 交叉熵损失函数 6 优化器SGD+ 7 学习率衰减策

    2024年02月02日
    浏览(39)
  • 【OpenCv • c++】图像识别边缘检测 图像差分运算

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪 边缘检测是图像处理与计算机视觉中最重要的技术之一,其目的是检

    2024年02月03日
    浏览(24)
  • 竞赛 深度学习+opencv+python实现昆虫识别 -图像识别 昆虫识别

    🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的昆虫识别算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:4分 创新点:4分 🧿 更多资料, 项目分享: https://git

    2024年02月07日
    浏览(31)
  • 【opencv】传统图像识别:hog+svm行人识别实战

    实战工具:python3.7+pycharm+opencv4.6 算法知识:HOG特征提取、SVM模型构建 实战目的:本次实战的目的是熟悉HOG+SVM工作流算法,初步掌握图像分类的传统算法。 实战记录:本以为在学习原理、算法应用、动手实操后会很顺利的完全自主实现行人检测项目,但实战过程却差强人意,

    2024年02月13日
    浏览(27)
  • 竞赛保研 opencv 图像识别 指纹识别 - python

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器视觉的指纹识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-seni

    2024年02月03日
    浏览(26)
  • 【毕设选题】opencv 图像识别 指纹识别 - python

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月07日
    浏览(31)
  • 谈谈如何使用 opencv 进行图像识别

    原文由hakaboom发表于TesterHome社区,点击原文链接可与作者直接交流。 从18年开始,我接触了叉叉助手(平台已经被请喝茶了),通过图色识别,用来给常玩的游戏写挂机脚本,写了也有两三年.也算是我转行当游戏测试的理由. 去年11月,也是用了这身技术,混进了外包,薪资还不错,属于是

    2024年02月10日
    浏览(38)
  • 图像识别技术OpenCV | C++版本

    图像与信号 图像 图像是人对视觉感知的物质再现。图像可以由光学设备获取,也可以人为创作。随着数字采集技术和信号处理理论的发展,越来越多的图像以数字形式存储。因而,有些情况下”图像“一词实际上是指数字图像。图像相关的话题包括图像采集、图像制作、图

    2024年02月05日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包