#创建Haar级联器
facer = cv2.CascadeClassifier('训练文件')
#导入图片并将其灰度化
img = cv2.imread('p.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#调用detetMultiScale方法进行人脸识别
#返回值faces是[[x,y,h,w]]数组
faces = facer.detectMultiScale(gray, 1.1, 3)
for(x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w, y+h),(0,0,255),2)
Haar其他脸部特征的检测
眼鼻口等
在检测出的人脸上再检测眼睛,能提高准确度
车牌识别具体步骤
#引入Tesseract库
import pytesseract
#创建Haar级联器
flate = cv2.CascadeClassifier('训练文件')
#导入图片并将其灰度化
img = cv2.imread('p.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#车牌定位
flates = plate.detectMultiScale(gray, 1.1, 3)
for(x,y,w,h) in flates:
cv2.rectangle(img,(x,y),(x+w, y+h),(0,0,255),2)
#对获取的车牌进行预处理
#1.提取ROil
roi = gray[y:y+h, x:x+w]
#2.进行二值化
ret, roi_bin = cv2.threshold(roi, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
#lang指定语言,多个语言用+号连接
#config参数配置 分段形式常选8 11 引擎模式 常选3默认
pytesseract.image_to_string(roi, lang = 'chi_sim+eng', config = '--psm 8 --oem 3')
CNN主要用途
几种CNN网络实现
几种CNN目标检测网络实现
深度学习库
训练数据集
训练模型
OpenCV对DNN的支持
OpenCV支持的模型
#导入模型,并得到深度神经网络
net = cv2.readNetFromCaffe(config, model)
#读取图片,并将将图片转成张量
blob = dnn.blobFromImage(img, 1.0, (224,224), (104, 117, 123))
#将张量送入深度神经网络中,并进行预测
net.setInput(blob)
r = net.forward()
#得到结果,显示
with open(path, 'rt') as f:
classes = [x [x.find("") + 1:] for x in f]
order = sorted(r[0], reverse = True)
z = list(range(3))
for i in range(0, 3):
z[i] = np.where(r[0] == order[i])[0][0]
print('第', i+1 '项,匹配:', classes[z[i]], end = '')
print('类所在行', z[i] + 1, '', '可能性:', order[i])