Python_opencv库

Posted hellangels333

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python_opencv库相关的知识,希望对你有一定的参考价值。

车牌检测

‘‘‘
项目名称: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库的主要内容,如果未能解决你的问题,请参考以下文章

设置窗口可调整大小Python_OpenCV读取视频和图片

Python_opencv_傅里叶变换

python_Opencv_读取视频_摄像头

Chrome-Devtools代码片段中的多个JS库

Xamarin Android 片段库

typescript Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming/angular-2/