返回顶部
首页 > 资讯 > 后端开发 > Python >Python OpenCV图像识别的示例分析
  • 328
分享到

Python OpenCV图像识别的示例分析

2023-06-29 01:06:41 328人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

小编给大家分享一下python OpenCV图像识别的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、人脸识别主要有以下两种实现方法:哈尔(Haar)级联法:专门解决人脸识别而推出的传统算法;实现步骤:

小编给大家分享一下python OpenCV图像识别的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

一、人脸识别

主要有以下两种实现方法:

哈尔(Haar)级联法:专门解决人脸识别而推出的传统算法

实现步骤:

创建Haar级联器;

导入图片并将其灰度化;

调用函数接口进行人脸识别;

函数原型:

detectMultiScale(img,scaleFactor,minNeighbors)

scaleFactor:缩放尺寸;

minNeighbors:最小像素值;

代码案例:

# 创建Haar级联器facer = cv2.CascadeClassifier('./haarcascades/haarcascade_frontalface_default.xml')# 导入人脸图片并灰度化img = cv2.imread('p3.png')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 调用接口faces = facer.detectMultiScale(gray, 1.1, 5)for (x,y,w,h) in faces:    cv2.rectangle(img, (x,y), (x+w, y+h), (0,0,255), 2)cv2.imshow('img', img)cv2.waiTKEy()

Python OpenCV图像识别的示例分析

结论:Haar级联法对于完整脸部的检测效果还是不错的,但对于不完整脸部识别效果差,这可能也是传统算法的一个缺陷所在,泛化能力比较差;

拓展:Haar级联器还可以对脸部中细节特征进行识别

代码如下:

# 创建Haar级联器facer = cv2.CascadeClassifier('./haarcascades/haarcascade_frontalface_default.xml')eyer = cv2.CascadeClassifier('./haarcascades/haarcascade_eye.xml')# 导入人脸图片并灰度化img = cv2.imread('p3.png')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 调用接口faces = facer.detectMultiScale(gray, 1.1, 5)i = 0for (x,y,w,h) in faces:    cv2.rectangle(img, (x,y), (x+w, y+h), (0,0,255), 2)    ROI_img = img[y:y+h, x:x+w]    eyes = eyer.detectMultiScale(ROI_img, 1.1, 5)    for (x,y,w,h) in eyes:        cv2.rectangle(ROI_img, (x,y), (x+w, y+h), (0,255,0), 2)    i += 1    name = 'img'+str(i)    cv2.imshow(name, ROI_img)cv2.waitKey()

Python OpenCV图像识别的示例分析

总结:Haar级联器提供了多种脸部属性的识别,眼睛鼻子嘴巴都可以,但效果不一定那么准确;

二、车牌识别

结构:Haar+Tesseract车牌识别;

说明:Haar级联器仅用于定位车牌的位置,Tesseract用于提取其中的内容;

实现步骤:

Haar级联器定位车牌位置;

车牌预处理操作(二值化、形态学、滤波去噪、缩放);

调用Tesseract进行文字识别;

注意:这里需要预先安装Tesseract;

代码案例:

import pytesseract# 创建Haar级联器carer = cv2.CascadeClassifier('./haarcascades/haarcascade_russian_plate_number.xml')# 导入人脸图片并灰度化img = cv2.imread('chinacar.jpeg')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 调用接口 cars = carer.detectMultiScale(gray, 1.1, 3)for (x,y,w,h) in cars:    cv2.rectangle(img, (x,y), (x+w, y+h), (0,0,255), 2)# 提取ROIroi = gray[y:y+h, x:x+w]# 二值化ret, roi_bin = cv2.threshold(roi, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)# 文字识别pytesseract.pytesseract.tesseract_cmd = r"D:\Tesseract_OCR\tesseract.exe"text = pytesseract.image_to_string(roi, lang='chi_sim+eng',config='--psm 8 --oem 3')print(text)cv2.putText(img, text, (20,100), cv2.FONT_HERSHEY_SIMPLEX, 2, (0,0,255), 3)cv2.imshow('img', img)cv2.waitKey()

Python OpenCV图像识别的示例分析

结论:车牌的位置检测比较准确,但Tesseract的识别并不那么准确,可能用ORC识别会准确一些;当然识别的准确率也和图像处理后比较模糊有关,做一些处理能够提升文字的识别率;

三、DNN图像分类

DNN为深度神经网络,并且是全连接的形式;

注意:OpenCV能够使用DNN模型,但并不能训练;

DNN使用步骤:

读取模型,得到网络结构;

读取数据(图片或视频)

将图片转成张量,送入网络;

模型输出结果;

函数原型:

导入模型:readNet(model,[config])

图像转张量:blobFromImage(image,scalefactor,size,mean,swapRB,crop)

送入网络:net.setInput(blob)

模型推理:net.forward()

代码案例:

# 导入模型config = "./model/bvlc_Googlenet.prototxt"model = "./model/bvlc_googlenet.caffemodel"net = dnn.readNetFromCaffe(config, model)# 加载图片,转成张量img = cv2.imread('./smallcat.jpeg')blob = dnn.blobFromImage(img, 1.0, (224,224), (104,117,123))# 模型推理net.setInput(blob)r = net.forward()idxs = np.argsort(r[0])[::-1][:5]# 分类结果展示path = './model/synset_Words.txt'with open(path, 'rt') as f:    classes = [x[x.find(" ")+1:]for x in f]for (i, idx) in enumerate(idxs):# 将结果展示在图像上    if i == 0:        text = "Label: {}, {:.2f}%".fORMat(classes[idx],            r[0][idx] * 100)        cv2.putText(img, text, (5, 25),  cv2.FONT_HERSHEY_SIMPLEX,            0.7, (0, 0, 255), 2)# 显示图像cv2.imshow("Image", img)cv2.waitKey(0)

Python OpenCV图像识别的示例分析

看完了这篇文章,相信你对“Python OpenCV图像识别的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网Python频道,感谢各位的阅读!

--结束END--

本文标题: Python OpenCV图像识别的示例分析

本文链接: https://lsjlt.com/news/321507.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python OpenCV图像识别的示例分析
    小编给大家分享一下Python OpenCV图像识别的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、人脸识别主要有以下两种实现方法:哈尔(Haar)级联法:专门解决人脸识别而推出的传统算法;实现步骤:...
    99+
    2023-06-29
  • python中pytorch图像识别的示例分析
    这篇文章将为大家详细讲解有关python中pytorch图像识别的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、数据集爬取现在的深度学习对数据集量的需求越来越大了,也有了许多现成的数据集可供大...
    99+
    2023-06-29
  • python opencv图像处理基本操作的示例分析
    本篇文章给大家分享的是有关python opencv图像处理基本操作的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。①读取图像②显示图像该函数中,name是显示窗口的名...
    99+
    2023-06-25
  • 基于Opencv图像识别实现答题卡识别示例详解
    目录1. 项目分析2.项目实验3.项目结果总结在观看唐宇迪老师图像处理的课程中,其中有一个答题卡识别的小项目,在此结合自己理解做一个简单的总结。 1. 项目分析 首先在拿到项目时候,...
    99+
    2024-04-02
  • Python+OpenCV图像处理之直方图统计的示例分析
    这篇文章主要为大家展示了“Python+OpenCV图像处理之直方图统计的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python+OpenCV图像处理之直方图统计的示例分析”这篇文章...
    99+
    2023-06-22
  • python中的opencv图像梯度实例分析
    本文小编为大家详细介绍“python中的opencv图像梯度实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“python中的opencv图像梯度实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。图像梯...
    99+
    2023-06-30
  • python OpenCV图像金字塔实例分析
    这篇“python OpenCV图像金字塔实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python&nb...
    99+
    2023-07-02
  • python实现图像识别的示例代码
    一、安装库 首先我们需要安装PIL和pytesseract库。 PIL:(Python Imaging Library)是Python平台上的图像处理标准库,功能非常强大。 pyte...
    99+
    2024-04-02
  • html基础图像知识的示例分析
    这篇文章将为大家详细讲解有关html基础图像知识的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   要在页面上显示图像,你需要使用源属性(src)。src指&...
    99+
    2024-04-02
  • Python语音识别的示例分析
    这篇文章给大家分享的是有关Python语音识别的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概述将开启一个新的深度学习章节, 为大家来讲述一下深度学习在语音识别 (Speech Recognition)...
    99+
    2023-06-25
  • 【python 图像识别】图像识别从菜鸟
    一、安装配置(python2.7) 1.pip install pytesseract 2、pip install pyocr 3、pip install pillow 4、安装tesseract-ocr:http://jaist...
    99+
    2023-01-31
    图像 菜鸟 python
  • Python OpenCV 图像平移的实现示例
    每次学习新东西的时候,橡皮擦都是去海量检索,然后找到适合自己理解的部分。 再将其拼凑成一个小的系统,争取对该内容有初步理解。 今天这 1 个小时,核心要学习的是图像的平移,在电脑上随...
    99+
    2024-04-02
  • OpenCV图像算法实现图像切分图像合并示例
    目录将一张图片切分成多个小图片并将小图片合并为原图图像切分图像合并验证友情提示将一张图片切分成多个小图片并将小图片合并为原图 最近用到一个功能,需要将一张原图切分成多个小图像,然后对...
    99+
    2024-04-02
  • Node Puppeteer图像识别实现百度指数爬虫的示例分析
    这篇文章主要为大家展示了“Node Puppeteer图像识别实现百度指数爬虫的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Node Puppetee...
    99+
    2024-04-02
  • Python实现识别图像中人物的示例代码
    目录前言环境部署代码总结前言 接着上一篇:AI识别照片是谁,人脸识别face_recognition开源项目安装使用 根据项目提供的demo代码,调整了一下功能,自己写了一个识别人脸...
    99+
    2024-04-02
  • Python+OpenCV实现图像识别替换功能详解
    OpenCV-Python是一个Python库,旨在解决计算机视觉问题。 OpenCV是一个开源的计算机视觉库,1999年由英特尔的Gary Bradski启动。Bradski在访学...
    99+
    2024-04-02
  • Python+Opencv实现数字识别的示例代码
    一、什么是数字识别?   所谓的数字识别,就是使用算法自动识别出图片中的数字。具体的效果如下图所示: 上图展示了算法的处理效果,算法能够自动的识别到LC...
    99+
    2024-04-02
  • Python中opencv操作的示例分析
    这篇文章主要介绍Python中opencv操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!直接读取图片def display_img(file="p.jpeg"): ...
    99+
    2023-06-14
  • Python中图像量化处理的示例分析
    小编给大家分享一下Python中图像量化处理的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.图像量化处理原理量化(Quantization)旨在将图像...
    99+
    2023-06-29
  • HTML图像标签的示例分析
    这篇文章主要为大家展示了“HTML图像标签的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML图像标签的示例分析”这篇文章吧。   HTML图像-...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作