码迷,mamicode.com
首页 > 编程语言 > 详细

Python_opencv库

时间:2018-05-15 22:47:36      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:文件   目标   检测   tco   image   之间   nbsp   import   append   

车牌检测

‘‘‘
项目名称:opencv/cv2 车牌检测


简介:
1.训练级联表 ***.xml 【跳过...】
2.用如下代码加载级联表和目标图片识别车牌

注:推荐用anconda安装opencv库
‘‘‘


import cv2
detector = cv2.CascadeClassifier() #实例化检测器 detector/检测器
ret = detector.load(‘plate_cascade.xml‘) #加载级联表,注:Python加载文件需要load(加载)一下,C++不需要
# 检测级联表是否加载成功
if not ret:
print(‘未找到级联表/load cascade err‘)
quit()
# 读目标图片
img = cv2.imread(‘2.jpg‘)
#转灰度(黑白色)
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY ) #三字节颜色转一字节颜色(彩色转黑白) cvt/转换 covert
‘‘‘
颜色检测
颜色转换
色彩BGR、HVS两种格式
‘‘‘

# 目标锁定盒子
boxs = detector.detectMultiScale(gray,1.01,3) #两个参数:金字塔层级系数(1~2之间,与车牌在整张图中的占比成反比;越小越检查出来的多),非相关性抑制系数
print(len(boxs)) #找到的目标的个数
for box in boxs:
x,y,w,h=box # zy 位置 wh宽高
g=img[y:y+h,x:x+w,:]
name=‘%d_%d_%d_%d.jpg‘%(x,y,w,h)
print(name) # 输出车牌截图名称【注:坐标命名规则】
cv2.imwrite(name,g) # 打印车牌的截图

 

2.图片人脸检测

# 人脸识别,正则分析

import cv2
import numpy as np
from PIL import Image
#pip install PIL
#pip install opencv-python
#pip install dlib
dector=cv2.CascadeClassifier()
ret=dector.load(haarcascade_frontalface_alt_tree.xml)
if not ret:
    print(未找到级联表文件:plate_cascade.xml)
    exit()

img=cv2.imread(e:/85n.jpg)
if img is None:
    print(文件不存在)
    exit()
#彩色转成灰度图像
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# 正则化,亮度调成均匀的
gray=np.uint8(gray/gray.ptp()*255)

boxs=dector.detectMultiScale(gray,1.015,1)
platelist=[]
for box in boxs:
    x,y,w,h=box
    g=img[y:y+h,x:x+w,:]
    platelist.append(g)
    linew=h//100+1
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),linew)
gimg=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
image=Image.fromarray(gimg)
image.show()
image.close()

 

3.视频人脸检测

# 人脸识别,正则分析

import cv2
import numpy as np
from PIL import Image
#pip install PIL
#pip install opencv-python
#pip install dlib
dector=cv2.CascadeClassifier()
ret=dector.load(haarcascade_frontalface_alt_tree.xml)
if not ret:
    print(未找到级联表文件:plate_cascade.xml)
    exit()

img=cv2.imread(e:/85n.jpg)
if img is None:
    print(文件不存在)
    exit()
#彩色转成灰度图像
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# 正则化,亮度调成均匀的
gray=np.uint8(gray/gray.ptp()*255)

boxs=dector.detectMultiScale(gray,1.015,1)
platelist=[]
for box in boxs:
    x,y,w,h=box
    g=img[y:y+h,x:x+w,:]
    platelist.append(g)
    linew=h//100+1
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),linew)
gimg=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
image=Image.fromarray(gimg)
image.show()
image.close()

 

Python_opencv库

标签:文件   目标   检测   tco   image   之间   nbsp   import   append   

原文地址:https://www.cnblogs.com/hellangels333/p/9042967.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!