python cv2 imwrite,Python + OpenCV:cv2.imwrite

I'm trying to detect a face and write down area with the face in a separate file.

How can I do it? I think that i must use "faces" (you can see this var in code). But how?

from ffnet import mlgraph, ffnet, tmlgraph, imlgraph

import pylab

import sys

import cv,cv2

import numpy

cascade = cv.Load('C:\opencv\data\haarcascades\haarcascade_frontalface_alt.xml')

def detect(image):

bitmap = cv.fromarray(image)

faces = cv.HaarDetectObjects(bitmap, cascade, cv.CreateMemStorage(0))

if faces:

for (x,y,w,h),n in faces:

cv2.rectangle(image,(x,y),(x+w,y+h),(255,255,255),3)

return image

if __name__ == "__main__":

cam = cv2.VideoCapture(0)

while 1:

_,frame =cam.read()

frame = numpy.asarray(detect(frame))

cv2.imshow("features", frame)

if cv2.waitKey(1) == 0x1b: # ESC

print 'ESC pressed. Exiting ...'

break

解决方案

This following code should extract face in images and save faces on disk

def detect(image):

image_faces = []

bitmap = cv.fromarray(image)

faces = cv.HaarDetectObjects(bitmap, cascade, cv.CreateMemStorage(0))

if faces:

for (x,y,w,h),n in faces:

image_faces.append(image[y:(y+h), x:(x+w)])

#cv2.rectangle(image,(x,y),(x+w,y+h),(255,255,255),3)

return image_faces

if __name__ == "__main__":

cam = cv2.VideoCapture(0)

while 1:

_,frame =cam.read()

image_faces = []

image_faces = detect(frame)

for i, face in enumerate(image_faces):

cv2.imwrite("face-" + str(i) + ".jpg", face)

#cv2.imshow("features", frame)

if cv2.waitKey(1) == 0x1b: # ESC

print 'ESC pressed. Exiting ...'

break

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值