opnencv(基本使用)机器视觉(人脸识别)
opencv基本使用方法!!!opencv介绍:计算机视觉和机器学习库,实现了图像处理和计算机视觉方面的很多通用算法安装:pip(conda)installopencv-pythonopencv简单使用import cv2#1. 读取图片img = cv2.imread("opencv_image/dong.jpg")# print(img.shape)#(300, 400, 3)分别是 高、宽、
·
opencv基本使用方法!!!
使用数据集:https://download.csdn.net/download/weixin_43715360/13944379
-
opencv
-
介绍:计算机视觉和机器学习库,实现了图像处理和计算机视觉方面的很多通用算法
-
安装:pip(conda) install opencv-python
-
opencv简单使用
import cv2 #1. 读取图片 img = cv2.imread("opencv_image/dong.jpg") # print(img.shape)# (300, 400, 3) 分别是 高、宽、像素 print(img)#顺序不是rgb,是bgr #2. 显示图片 cv2.imshow('dong',img) #3.1 直接显示imshow会闪退,我们可以设置延迟关闭来控制显示时间 #3.2 能够监听键盘输入的内容 cv2.waitKey()#单位是毫秒 按任意键退出窗口 #设置一直显示,不传入时间或者传入0即可 #4.销毁资源 cv2.destroyAllWindows() -
opencv图片人脸识别
import cv2 #准备.人脸特征数据包:本地库中cv2的data文件夹中 dong = cv2.imread("opencv_image/dong.jpg") #1. 加载人脸特征数据包 face_detect = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml") #2. 调用识别人脸的方法 # 如果识别到人脸,返回二维列表,每个列表四个值分别是:横纵坐标和宽高 # 如果识别不到人脸,返回空元组 faces = face_detect.detectMultiScale(dong) #3. for循环标记每一张人脸 for x,y,w,h in faces: #4. 标记 # 参数1:被标记的图片 # 参数2:人脸的左上角的坐标 # 参数3:人脸的右上角的坐标 # 参数4:标记人脸线框的颜色 # 参数5:标记人脸线框的边框宽度 cv2.rectangle(dong,pt1=(x,y),pt2=(x+w,y+h),color=[0,0,255],thickness=2) #5. 显示图片 cv2.imshow("dong",dong) cv2.waitKey() cv2.destroyAllWindows() -
opencv转黑白图片
import cv2 img = cv2.imread("opencv_image/sundog.jpg") #1. 修改图片大小 bigImg = cv2.resize(img,dsize=(800,800)) #2. 转为黑白图片 to grayImg = cv2.cvtColor(bigImg,code=cv2.COLOR_BGR2GRAY) cv2.imshow('img',grayImg) cv2.waitKey() cv2.destroyAllWindows() -
人脸马赛克案例
import cv2 #1. 读取图片 dong = cv2.imread("opencv_image/sundog.jpg") #1. 加载人脸特征数据包 face_detect = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml") sample = 10 #2. 调用识别人脸的方法 # scaleFactor:缩放因子,默认应该是1.3 值越小,扫描越严格 # minNeighbors:最小邻居数 默认应该是3,值越大,越严格 faces = face_detect.detectMultiScale(dong) #3. for循环标记每一张人脸 for x,y,w,h in faces: face = dong[y:y+h,x:x+w] #4. 打码就是变模糊,图片是有很多像素点组成的 # 在原来人脸图片上,每隔10个像素取1个 face = face[::sample,::sample] #5. 根据打码之后图片的像素点 # 原人脸:200*200 # 打码之后:20*20 # 思路:打码之后一个像素点顶原图人脸10个像素点 # (0,0)----->(0,0) # (1,0)----->(10,0) # (1,1)----->(10,10) for i in range(h//sample): #控制高 for j in range(w//sample):#控制宽 dong[y+i*sample:y+sample+i*sample,x+j*sample:x+sample+j*sample] = face[i,j] #6. 显示图片 cv2.imshow("dong",dong) cv2.waitKey() cv2.destroyAllWindows() -
摄像头人脸标记与人脸存储
import cv2 import os faceImg = "face" #判断文件夹是否存在,如果不存在则创建 if not os.path.exists(faceImg): os.mkdir(faceImg) #1. 开启摄像头 video = cv2.VideoCapture(0)#笔记本摄像头的编号是0 face_detect = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml") i = 1 #2. 摄像头读取很多帧图片,然后对图片进行识别 while(True): #3. 读取摄像头的图片 # flag:是否读取到图片 # video_img:获取到每帧图片 flag,video_img = video.read() #4. 识别图片 faces = face_detect.detectMultiScale(video_img) for x, y, w, h in faces: cv2.rectangle(video_img, pt1=(x, y), pt2=(x + w, y + h), color=[0, 0, 255], thickness=2) #5. 采集人脸图片(只要人脸) face = video_img[y:y+h,x:x+w] #6. 保存到本地 cv2.imwrite("{}/{}.jpg".format(faceImg,i),face) print("第{}张人脸存储完成".format(i)) cv2.imshow("img",video_img) #摄像头1秒30帧 cv2.waitKey(1000//30) i+=1 #关闭窗口 cv2.destroyAllWindows()
-
更多推荐



所有评论(0)