resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)

viewImage(resized, "After resizing with 20%")

调整大小的函数保持了和原来图像一样的尺寸比。

更多关于图像缩放的函数,查看原文。

旋转:Rotating

上方: 照片来自Pexels的Jonathan Meyer.下方:旋转180度后的狗狗

import cv2(h, w, d) = image.shapecenter = (w // 2, h // 2)M = cv2.getRotationMatrix2D(center, 180, 1.0)rotated = cv2.warpAffine(image, M, (w, h))viewImage(rotated, "Doggo after rotation by 190 degrees")

image.shape输出了图像的高度,宽度和通道数。M是旋转矩阵——根据图像中心旋转180度。-ve按照顺指针方向旋转图像 & +ve 则是按照逆时针方向旋转。

灰度和阈值(黑&白效果)

图像来源: Pexels

import cv2gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)ret, threshold_image = cv2.threshold(im, 127, 255, 0)viewImage(gray_image, "Gray-scale doggo")viewImage(threshold_image, "Black & White doggo")

gray_image是图像的灰度单通道版本。阈值函数将所有阴影变为比127更暗(更小)到0并且所有更亮(更大)到255。

另外一个例子:

ret, threshold = cv2.threshold(im, 150, 200, 10)

这将使所有阴影小于150到10并且全部大于200。

更多关于阈值函数,查阅原文。

模糊/平滑

import cv2blurred = cv2.GaussianBlur(image, (51, 51), 0)viewImage(blurred, "Blurred doggo")

GussianBlur函数接收3个参数:

第一个参数是你想要模糊的图像

第二个参数必须是两个正奇数的元组。当他们增加时,模糊效果会增加。

第三个参数是sigmaX和sigmaY。当保留为0时,他们将根据内核大小自动计算

更多的模糊函数,参看原文。

在图像上绘制矩形/边界框

上方: 图像来自Pexels. 下方: 狗狗脸上画了一个矩形框

import cv2output = image.copy()cv2.rectangle(output, (2600, 800), (4100, 2400), (0, 255, 255), 10)viewImage(output, "Doggo with a rectangle on his face")

矩形框函数接收5个参数:

第一个参数是图像

第二个参数是x1, y1 ——对应左上角

第三个参数是x2, y2 ——对应右下角

第四个参数是矩形颜色(GBR/RGB,具体取决于你导入图像的方式)

第五个参数矩形线条的粗细

在图片上绘制线段

上方: 图像来自Pexels. 下方: 2只狗狗被一条直线分隔

import cv2output = image.copy()cv2.line(output, (60, 20), (400, 200), (0, 0, 255), 5)viewImage(output, "2 Doggos separated by a line")

line函数需要传入5个参数:

第一个参数是你需要在上面绘制线段的图像。

第二个参数是直线的x1, y1坐标。

第三个参数是直线的x2 y2坐标。

第四个参数是线段的颜色(可以是GBR/也可以是RGB,这取决于你导入的图片的格式)。

第五个参数是线段的粗细。

在图片上输入文字

import cv2output = image.copy()cv2.putText(output, "We <3 Dogs", (1500, 3600),cv2.FONT_HERSHEY_SIMPLEX, 15, (30, 105, 210), 40)viewImage(output, "image with text")

putText 函数包含七个参数:

第一个参数是您需要在上面输入文字的图片

第二个参数是需要输入的文字内容

第三个参数是文字开始区域的左下角的x,y坐标

第四个参数是字体

第五个参数是字体大小

第六个参数是字体颜色(可以是GBR/也可以是RGB,这取决于你导入的图片的格式)。

第七个参数是字体的粗细

人脸识别

非常抱歉,此处我们不能放狗狗的图片了。:(

来自于 Pixabay的免费图片

import cv2image_path = "./Path/To/Photo.extension"face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

image = cv2.imread(image_path)gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)faces = face_cascade.detectMultiScale(gray,scaleFactor= 1.1,minNeighbors= 5,minSize=(10, 10))

faces_detected = format(len(faces)) + " faces detected!"print(faces_detected)# Draw a rectangle around the facesfor (x, y, w, h) in faces:cv2.rectangle(image, (x, y), (x+w, y+h), (255, 255, 0), 2)viewImage(image,faces_detected)

detectMultiScale函数是一个检测物体的通用函数。当我们把它用于人脸检测时,它就会从图像中检测出人脸。

detectMultiScale函数 包含四个参数 :

第一个参数是灰度图

第二个参数是缩放比例。因为在我们的图片中,有些人脸由于更靠近照相机,导致他们看起来比后面的人脸更大些。缩放参数就是为了解决这种问题的。

检测算法使用了滑动窗口来检测目标物体。minNeighbors参数定义了当识别出一个人脸之前在当前物体周围需要检测的物体数目。

同时minSize参数给出了窗口的大小

在图片中检测出两张人脸

轮廓—— 一种物体检测的方法

使用基于颜色的图片分段,我们可以实现物体的检测。cv2.findContours 和 cv2.drawContours 两个函数可以帮我们实现上述目标。

近期,我写了一篇非常详细的文章,文章的题目是使用python来实现基于颜色的图片分段的物体检测。如果你想了解关于轮廓的知识,你可以去阅读这篇文章。

最后,保存图片

import cv2image = cv2.imread("./Import/path.extension")cv2.imwrite("./Export/Path.extension", image)

最后总结

https://ai.yanxishe.com/page/TextTranslation/1659

opencv看图像同导致 python_OpenCV-Python速查:从载入图片到人脸识别相关推荐

  1. 超全Python速查表登上GitHub热榜,标星4600+!(附链接)

    本文经AI新媒体量子位授权转载,转载请联系出处. 本文多资源,建议阅读5分钟. 本文为你分享一份超全Python速查表. 哪里不会,抄查哪里. GitHub上出现一份对Python用户非常友好的资源: ...

  2. Python与人工智能入门实践——简易人脸识别系统

    Python与人工智能入门实践--简易人脸识别系统 写在前面: 笔者在寒假期间进行了一些简短的实训,主要内容包括简单的爬虫和简单的人脸识别算法,由于时间有限,对于python也是第一次详细学习,功能较 ...

  3. Python三十行代码实现简单人脸识别

    Python三十行代码实现简单人脸识别 一.库介绍 opencv,face_recognition,numpy,以及dlib 注意: 安装opencv速度可能过慢,需要更换国内镜像源,参考:https ...

  4. DeepID:Python基于Caffe的DeepID2实现人脸识别的简介、实现之详细攻略

    DeepID:Python基于Caffe的DeepID2实现人脸识别的简介.实现之详细攻略 目录 基于Caffe的DeepID2实现人脸识别 DeepID2实现人脸识别的实现 基于Caffe的Deep ...

  5. 【机器学习】27 个机器学习、数学、Python 速查表

    英文:Robbie Allen,编译:伯乐在线 - iPytLab 机器学习涉及到的方面非常多.当我开始准备复习这些内容的时候,我找到了许多不同的"速查表", 这些速查表针对某一主 ...

  6. Python开发系统实战项目:人脸识别门禁监控系统

    前段时间来到中关村重庆基地实训,老师要求每人提交一张本人白底免冠照片用于录入门禁监控系统,我当时想:好高级哇,一张照片就可以耶:神经网络训练模型还得好多张图片不断轮次迭代才能产生好的效果呢.当时的我非 ...

  7. python 3.8.5 打包_骚操作 | Python 实现在 App 端的人脸识别

    最近闲来无事,研究研究在安卓上跑 Python,想起以前玩过的 kivy 技术,kivy 是一个跨平台的 UI 框架,当然对我们最有用的是,kivy 可以把 Python 代码打包成安卓应用.但是由于 ...

  8. Python利用百度AI平台实现人脸识别

    前言 百度AI平台提供的接口十分丰富,对于做项目来说,百度是一个很好的开放平台.本文利用百度提供的接口来实现人脸识别,而且可以无限制调用.博客参考人脸识别-Python-SDK 安装 pip inst ...

  9. python安装百度aip_百度Aip人脸识别之python代码

    用python来做人脸识别代码量少 思路清晰, 在使用之前我们需要在我们的配置的编译器中通过pip install baidu-aip 即可 from aip import AipFace 就可以开始 ...

最新文章

  1. Oracle基础 动态SQL语句
  2. ZOJ 3820 Building Fire Stations
  3. vim java 注释_centOS7 下的vim java补全
  4. windbg查看设备栈设备树学习总结
  5. MFC载入JPG图片
  6. 开启协程_「科普」什么是协程?
  7. 【Linux入门学习之】ubuntu10.04 ruijie配置上网(用mentohust)
  8. 远程Service(AIDL)的简单使用
  9. selenium自动化案例(二)滑动验证码破解
  10. javascript Control flow(控制语句)
  11. 全球私有云的中国挑战者来了
  12. java组合数打印出结果_Java打印一组数据中,抽取固定数目的数的所有可能组合...
  13. Atitit s2018 s3 doc list alldvc.docx .docx s2018 s3f doc compc s2018 s3f doc homepc sum doc dvcCom
  14. 电脑联想小新连上蓝牙耳机依然外放,终于解决了
  15. 2022广东省安全员A证第三批(主要负责人)特种作业证考试题库及模拟考试
  16. android多点触控的理解
  17. global 与 $GLOBALS用法
  18. 贝塔分布与狄利克雷分布
  19. 倍福---PLC 字符串类型string操作
  20. 工作总结--如何定位web系统前后台的bug,以及bug分析/测试感想

热门文章

  1. 惠普服务器G8系列做raid,hp g8服务器设置raid5
  2. 高效集成连接管理与平台运营 中琛物联赋能智慧城市建设
  3. 物联卡与SIM卡相比优势在哪
  4. python 实例化过程_python实例化对象的具体方法
  5. Python数值特征转换
  6. Hive去重最佳方法
  7. 2.2 流程控制-for序列 2.3 流程控制-for字典 2.4 循环退出 2.5 流程控制-while
  8. 智能交通助力城市道路行车提速15%
  9. 图像处理------简单脸谱检测算法
  10. php -- 魔术方法 之 自动加载:__autoload()