OpenCV学习(2021.10.10)

01

刚刚结束今日份的学习任务,心情还不错。古人言“好记性不如烂笔头”,于是乎,小陈决定把今日份的学习任务部分整理出来和小可爱们分享分享。正所谓“独乐乐不如众乐乐”,一起来瞧瞧吧!嘻嘻

看了看自己的进度,文献笔记暂时是无法分享了,因为我还没看完。o(╥﹏╥)o。但是但是,我还有别的学习任务可以分享,是关于计算机视觉和图像处理方面的内容。

话不多说,进入正题!

02

首先,简要阐述一下自己的学习内容。

(1)OpenCV安装

(2)opencv库的基础操作

(3)键盘响应

(4)修改图片尺寸

(5)人脸识别小程序开发

其次,开始对学习内容逐点进行展开陈述。

1.OpenCV模块的安装

众所周知,用pip工具安装第三方模块时,经常会出现一些错误,常见错误的有响应超时、版本不匹配等。而针对网络超时错误,下载镜像文件是个超级nice的选择。于是乎,下方,我给出了两种下载方式,供大家参考!

#方法一# python -m pip install opencv-python#方法二(镜像)# python -m pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

2.OpenCV模块的基础操作

不难想象,第三方模块OpenCV安装好之后,我们就可以开始进行一些基础操作的学习啦!主要的基础操作有图像载入、图像模式转换、图像保存、图像显示等。

在这里提示一点:实现OpenCV模块的基础操作的前提是导入OpenCV模块。不止这个模块,其余模块的实现也都需要提前进行导入操作。

#opencv库的基础操作# import cv2#导入OpenCV模块# img = cv2.imread(r'D:\\OpenCV\\image.jpg',0)#以灰度模式读取指定路径下的图片# print(img)# print(img.shape)# cv2.imwrite(r'D:\\OpenCV\\img.jpg',img)#将图片保存到指定路径下# cv2.imshow('chen',img)#在特定窗口中显示图片# cv2.waitKey(0)#解决图片显示闪退问题,参数0表示持续等待键盘响应,也可省略

3.键盘响应

这一部分的内容,是对上一部分知识的回顾。主要是考察waitKey()方法的作用和实现。话不多说,直接看代码!

#键盘响应# import cv2# img = cv2.imread(r'D:\\OpenCV\\image.jpg',0)# cv2.imshow('chen',img)# k = cv2.waitKey(0)#持续等待,也可以设置具体等待时间,毫秒为单位# if k == 27:#ESC的ASCII码值# cv2.destroyWindow('chen')#按下ESC键,关闭显示图像的窗口(也可以使用cv2.destroyAllWindows()方法关闭图像显示的窗口)# elif k == 83:#S的ASCII码值# cv2.imwrite(r'D:\\OpenCV\\chen.jpg',img)#将图片保存到指定路径下# cv2.destroyWindow('chen')#按下S键,关闭显示图像的窗口

4.修改图片尺寸

这一部分内容,算是基础操作的扩展部分。新增的知识点是图像尺寸的修改方法resize(),把握住相关参数的含义,掌握难度不算很大!

#修改图片尺寸# import cv2# img = cv2.imread(r'D:\\OpenCV\\image.jpg',0)# print(img.shape)# resized_img = cv2.resize(img,(int(img.shape[1]//4),int(img.shape[0]//4)))#等比例缩放1/4# #resized_img = cv2.resize(img,(200,200))# print(resized_img.shape)# cv2.imshow('chen',resized_img)# cv2.waitKey()

5.人脸识别小程序开发

这一部分是比较重要的内容。可以说是一个简易人脸识别的实现框架。其中的知识点也在前面几部分的基础上做了比较深入的拓展,主要包括分类器的构建、图像探测比例、以及认证指标等。

在这里提示:分类器的构建,需要有经过大数据训练的数据集做数据支撑。鉴于小陈刚开始接触这一方面的内容,所以采取了OpenCV自带的人脸识别特征数据集。至于如何找到默认数据集以及具体的操作步骤如何,不在此阐述,详情参考小陈的学习笔记。

#人脸识别小程序开发# import cv2# img = cv2.imread(r'D:\\OpenCV\\img.jpg')#载入需要进行人脸识别的图片# resized_img = cv2.resize(img,(int(img.shape[1]//4),int(img.shape[0]//4)))#为使得人脸位置精确定位,原图像也要和处理图像缩放至同样大小# #因为后续需要在原图像上标注人脸位置,所以需要将原图像保留;并且原图转换得到灰度模式好的图像,进行后续识别处理。# gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# #考虑到原图像的尺寸太大,为观察后续整体效果,选择进行一定的尺寸缩放# resized_gray = cv2.resize(gray,(int(gray.shape[1]//4),int(gray.shape[0]//4)))# #创建级联分类器(选用的是OpenCV自带的人脸特征识别数据集)# face_cascade = cv2.CascadeClassifier\# (r'D:\\OpenCV\\opencv-4.5.3\\opencv-4.5.3\\data\\haarcascades\\haarcascade_frontalface_default.xml')# #scaleFactor参数表示每次图像缩小的比例;#minNeighbors参数表示每一个目标至少要被检测到多少次,才可以认为是真正的目标# faces = face_cascade.detectMultiScale(resized_gray,scaleFactor=1.2,minNeighbors=5)# for x,y,w,h in faces:# img = cv2.rectangle(resized_img,(x,y),(x+w,y+h),(0,255,0),3)#在人脸位置画上矩形方框,并且设置方框的颜色、边框粗细# cv2.imshow('chen',img)# cv2.waitKey()

03

写在最后,鉴于文案的篇幅以及整体的排版。小陈只是从整体上对相关学习内容进行了梳理,其中,有些细节问题没有详细展开。但是小可爱们不要慌,小陈的学习笔记很详细,可以后续进行参考!

(0)

相关推荐

  • OpenCV探索之路(二):图像处理的基础知识点串烧

    opencv图像初始化操作 #include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> using n ...

  • (11条消息) C++opencv图像裁剪、等比例放大缩小

    描述 C++使用opencv时,对imshow图像进行的常见处理,包括图像剪裁.等比例压缩等(待继续补充) 代码 1. 剪裁 int matrix_size = 3000; cv::Mat image ...

  • OpenCV入门教程(含人脸检测与常用图像处理示例等)

    在这篇文章中,我们将提供一些使用OpenCV的示例. 在OpenCV中混合图像 我们将提供一个逐步的示例,说明如何使用Python OpenCV混合图像.下面我们展示了目标图像和滤镜图像. 目标图像 ...

  • 快速指南:使用OpenCV预处理神经网络中的面部图像的

    重磅干货,第一时间送达 本期将介绍脸部检测.眼睛检测:图像拉直.裁剪.调整大小.归一化等内容 目前,涉及面部分类的计算机视觉问题,通常都需要使用深度学习.因此在将图像输入神经网络之前,需要经过一个预处 ...

  • OpenCV CUDA简介

    文章概述 ·处理单个图像 ·处理一系列图像 ·对一系列图像使用Dask进行并行延时处理 处理单个图像 首先,我们需要创建GPU空间(GPU_frame)来保存图像(就像相框保存图片一样),然后才能将图 ...

  • OpenCV学习28

    查找轮廓 什么是轮廓:一个轮廓是由图像中的一系列点组成的,也就是图像中的一条曲线.在OpenCV中一般用序列来存储轮廓信息.序列中的每个元素是曲线中每个点的位置. 关于序列:序列是内存存储器中可以存储 ...

  • Opencv实践

    Opencv实践 前言 一.安装库 二.基本操作 三.问题解决 结束语 前言  最近项目需要对图像进行一些预处理,想起了opencv这个好工具,话不多说,直接上笔记! 一.安装库 1.网上查找代码会看 ...

  • OpenCV探索之路(五):图片缩放和图像金字塔

    对图像进行缩放的最简单方法当然是调用resize函数啦! resize函数可以将源图像精确地转化为指定尺寸的目标图像. 要缩小图像,一般推荐使用CV_INETR_AREA来插值:若要放大图像,推荐使用 ...

  • OpenCV基础知识入门

    本文旨在让你快速入门opencv. OpenCV OpenCV是计算机视觉中最受欢迎的库,最初由intel使用C和C ++进行开发的,现在也可以在python中使用.该库是一个跨平台的开源库,是免费使 ...

  • 常见的图像处理技术

    重磅干货,第一时间送达 本期文章中,让我们一起来学习以下内容. 通过PIL和OpenCV来使用一些常见的图像处理技术,例如将RGB图像转换为灰度图像.旋转图像.对图像进行消噪.检测图像中的边缘以及裁剪 ...

  • (7条消息) OpenCV绘制文字、图形

    文章目录 一.文字putText 二.线line 三.矩形rectangle 四.圆circle 五.椭圆ellipse() color问题:图形的颜色会受到图像通道数的影响.如图像是灰度图,那么图形 ...