資源簡介
可同時識別多人,并且識別出來的人的人名存入txt中

代碼片段和文件信息
#!/usr/bin/env?python
#?-*-?coding:?utf-8?-*-
#?Copyright?(c)?Philipp?Wagner.?All?rights?reserved.
#?Licensed?under?the?BSD?license.?See?LICENSE?file?in?the?project?root?for?full?license?information.
import?sys
import?os
import?cv2
import?numpy?as?np
class?Detector:
def?detect(self?src):
raise?NotImplementedError(“Every?Detector?must?implement?the?detect?method.“)
class?SkinDetector(Detector):
“““
Implements?common?color?thresholding?rules?for?the?RGB?YCrCb?and?HSV?color?
space.?The?values?are?taken?from?a?paper?which?I?can‘t?find?right?now?so
be?careful?with?this?detector.
“““
def?_R1(selfBGR):
#?channels
B?=?BGR[::0]
G?=?BGR[::1]
R?=?BGR[::2]
e1?=?(R>95)?&?(G>40)?&?(B>20)?&?((np.maximum(Rnp.maximum(GB))?-?np.minimum(R?np.minimum(GB)))>15)?&?(np.abs(R-G)>15)?&?(R>G)?&?(R>B)
e2?=?(R>220)?&?(G>210)?&?(B>170)?&?(abs(R-G)<=15)?&?(R>B)?&?(G>B)
return?(e1|e2)
def?_R2(selfYCrCb):
Y?=?YCrCb[::0]
Cr?=?YCrCb[::1]
Cb?=?YCrCb[::2]
e1?=?Cr?<=?(1.5862*Cb+20)
e2?=?Cr?>=?(0.3448*Cb+76.2069)
e3?=?Cr?>=?(-4.5652*Cb+234.5652)
e4?=?Cr?<=?(-1.15*Cb+301.75)
e5?=?Cr?<=?(-2.2857*Cb+432.85)
return?e1?&?e2?&?e3?&?e4?&?e5
def?_R3(selfHSV):
H?=?HSV[::0]
S?=?HSV[::1]
V?=?HSV[::2]
return?((H<25)?|?(H>230))
def?detect(self?src):
if?np.ndim(src)?3:
return?np.ones(src.shape?dtype=np.uint8)
if?src.dtype?!=?np.uint8:
return?np.ones(src.shape?dtype=np.uint8)
srcYCrCb?=?cv2.cvtColor(src?cv2.COLOR_BGR2YCR_CB)
srcHSV?=?cv2.cvtColor(src?cv2.COLOR_BGR2HSV)
skinPixels?=?self._R1(src)?&?self._R2(srcYCrCb)?&?self._R3(srcHSV)
return?np.asarray(skinPixels?dtype=np.uint8)
class?CascadedDetector(Detector):
“““
Uses?the?OpenCV?cascades?to?perform?the?detection.?Returns?the?Regions?of?Interest?where
the?detector?assumes?a?face.?You?probably?have?to?play?around?with?the?scaleFactor?
minNeighbors?and?minSize?parameters?to?get?good?results?for?your?use?case.?From?my?
personal?experience?all?I?can?say?is:?there‘s?no?parameter?combination?which?*just?
works*.
“““
def?__init__(self?cascade_fn=“./cascades/haarcascade_frontalface_alt2.xml“?scaleFactor=1.2?minNeighbors=5?minSize=(3030)):
if?not?os.path.exists(cascade_fn):
raise?IOError(“No?valid?cascade?found?for?path=%s.“?%?cascade_fn)
self.cascade?=?cv2.CascadeClassifier(cascade_fn)
self.scaleFactor?=?scaleFactor
self.minNeighbors?=?minNeighbors
self.minSize?=?minSize
def?detect(self?src):
if?np.ndim(src)?==?3:
src?=?cv2.cvtColor(src?cv2.COLOR_BGR2GRAY)
src?=?cv2.equalizeHist(src)
rects?=?self.cascade.detectMultiScale(src?scaleFactor=self.scaleFactor?minNeighbors=self.minNeighbors?minSize=self.minSize)
if?len(rects)?==?0:
return?np.ndarray((0))
rects[:2:]?+=?rects[::2]
return?rects
class?SkinFaceDetector(Detector):
“““
Uses?the?SkinDetector?to?accept?only?faces?over?a?given?skin?color?tone?threshold?(ignored?for?
grayscale?images).?Be?careful?with?skin?color?tone?threshol
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-12-29?10:52??開源大作業\
?????目錄???????????0??2016-12-05?08:02??開源大作業\face\
?????目錄???????????0??2016-12-03?12:23??開源大作業\face\project\
?????文件????????5067??2016-12-01?18:51??開源大作業\face\project\detector.py
?????文件????????7443??2016-12-03?11:16??開源大作業\face\project\detector.pyc
?????文件????????4633??2016-12-06?17:59??開源大作業\face\project\face.py
?????目錄???????????0??2016-12-05?08:02??開源大作業\face\project\faces\
?????目錄???????????0??2016-12-05?08:02??開源大作業\face\project\faces\qkl\
?????文件???????11382??2016-12-03?12:24??開源大作業\face\project\faces\qkl\1.bmp
?????文件???????11382??2016-12-03?12:24??開源大作業\face\project\faces\qkl\2.bmp
?????文件???????11382??2016-12-03?12:24??開源大作業\face\project\faces\qkl\3.bmp
?????文件???????11382??2016-12-03?12:24??開源大作業\face\project\faces\qkl\4.bmp
?????文件???????11382??2016-12-03?12:24??開源大作業\face\project\faces\qkl\5.bmp
?????文件???????11382??2016-12-03?12:24??開源大作業\face\project\faces\qkl\6.bmp
?????文件???????11382??2016-12-03?12:24??開源大作業\face\project\faces\qkl\7.bmp
?????目錄???????????0??2016-12-03?13:33??開源大作業\face\project\faces\zq\
?????文件???????11382??2016-12-03?13:33??開源大作業\face\project\faces\zq\1.bmp
?????文件???????11382??2016-12-03?13:33??開源大作業\face\project\faces\zq\10.bmp
?????文件???????11382??2016-12-03?13:33??開源大作業\face\project\faces\zq\2.bmp
?????文件???????11382??2016-12-03?13:33??開源大作業\face\project\faces\zq\3.bmp
?????文件???????11382??2016-12-03?13:33??開源大作業\face\project\faces\zq\4.bmp
?????文件???????11382??2016-12-03?13:33??開源大作業\face\project\faces\zq\5.bmp
?????文件???????11382??2016-12-03?13:33??開源大作業\face\project\faces\zq\6.bmp
?????文件???????11382??2016-12-03?13:33??開源大作業\face\project\faces\zq\7.bmp
?????文件???????11382??2016-12-03?13:33??開源大作業\face\project\faces\zq\8.bmp
?????文件???????11382??2016-12-03?13:33??開源大作業\face\project\faces\zq\9.bmp
?????目錄???????????0??2016-12-04?16:47??開源大作業\face\project\faces\zxq\
?????文件???????11382??2016-12-04?16:47??開源大作業\face\project\faces\zxq\1.bmp
?????文件???????11382??2016-12-04?16:47??開源大作業\face\project\faces\zxq\10.bmp
?????文件???????11382??2016-12-04?16:47??開源大作業\face\project\faces\zxq\2.bmp
?????文件???????11382??2016-12-04?16:47??開源大作業\face\project\faces\zxq\3.bmp
............此處省略14個文件信息
- 上一篇:modbus 不知裝置地址情況下 快速查找地址
- 下一篇:微信DEMO登陸/支付
評論
共有 條評論