Python-opencv應該在編寫代碼之前安裝:
#!/usr/bin/python
#?-*-?編碼:?UTF八號?-*-
#?face_detect.py
#?臉?檢測?使用?OpenCV。?基礎?開?樣本?代碼?出發地:
#?/m76db1d6b
#?用法:?python?face_detect.py?& ltimage _ file & gt
進口?sys,?操作系統(Operating System)
從哪裏?opencv.cv?進口?*
從哪裏?opencv.highgui?進口?*
從哪裏?PIL?進口?形象,?ImageDraw
從哪裏?數學?進口?平方根計算
def?檢測對象(圖像):
" " "皈依者?安?形象?去哪?灰度?然後呢。指紋?那個?地點?的?有嗎?面孔?找到了“”
灰度?=?cvCreateImage(cvSize(image . width,?image.height),?8,?1)
cvCvtColor(圖片,?灰度,?CV_BGR2GRAY)
存儲?=?cvCreateMemStorage(0)
cvClearMemStorage(存儲)
cvEqualizeHist(灰度,?灰度)
級聯?=?cvLoadHaarClassifierCascade(
/usr/share/opencv/Haar cascades/Haar cascade _ frontal face _ default . XML ',
cvSize(1,1))
面孔?=?cvHaarDetectObjects(灰度,級聯,?存儲,?1.1,?2,
CV_HAAR_DO_CANNY_PRUNING,?cvSize(20,20))
結果?=?[]
為了什麽?f?在?面孔:
result.append((f.x,?飛燕?f.x+f.width,?f.y+f.height))
回歸?結果
def?灰度(r,g,?b):
回歸?int(r?*?.3?+?g?*?.59?+?b?*?.11)
def?過程(infile,輸出文件):
形象?=?cvLoadImage(infile);
如果?圖片:
面孔?=?檢測對象(圖像)
im?=?Image.open(infile)
如果?面孔:
畫畫?=?ImageDraw。繪制(im)
為了什麽?f?在?面孔:
draw.rectangle(f,大綱=(255,?0,?255))
im.save(outfile,“JPEG”,?質量=100)
否則:
打印?“錯誤:?不能?檢測?面孔?開?%s "?%?infile
如果?__name__?==?" __main__ "
process('input.jpg ',?output . jpg’)