Ejemplo n.º 1
0
    def __init__(self, webconf):
        self.webconf = webconf
        self._picam = PiCam()
        config = ConfigParser.ConfigParser()
        config.readfp(open('/etc/raspadmin/picam.conf'))
        self._servoX = config.get("PICAM", "useServoXaxis")
        if self._servoX == "1":
            self._useGPIOPower = config.get("PICAM", "useGpioPowerSwitch")
            self._servoPwNum = int(config.get("PICAM",
                                              "servoControlPinNumber"))
            self._maxServoPulse = int(config.get("PICAM", "maxServoPulse"))
            self._minServoPulse = int(config.get("PICAM", "minServoPulse"))
            self._defaultServoPulse = int(
                config.get("PICAM", "defaultServoPulse"))
            self._stepServoPulse = int(config.get("PICAM", "stepServoPulse"))
            self._servo = ServoManager(self._servoPwNum, self._minServoPulse,
                                       self._maxServoPulse,
                                       self._defaultServoPulse,
                                       self._stepServoPulse)
            if self._useGPIOPower == "1":
                self._switchGPIONum = int(
                    config.get("PICAM", "switchPinNumber"))
                self._servo.setSwitchMode(self._switchGPIONum)

            self._servo.start()
Ejemplo n.º 2
0
face_image = np.array((FACE_WIDTH, FACE_WIDTH,3), dtype=int)

def detect_face(frame):
    global face_image
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    # 이미지에서 얼굴을 검출합니다.
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    # 얼굴이 검출되었다면 얼굴 위치에 대한 좌표 정보를 리턴받습니다.

    for (x,y,w,h) in faces:
        # 원본 이미지에 얼굴의 위치를 표시
        # cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
        minLength = min(w, h)
        if minLength < 150: break
        width = max(w, h)

        # 얼굴 부분 검출
        # face_image = frame[y:y+h, x:x+w].copy()
        x = x + w//2 - width//2
        y = y + h//2 - width//2
        face_image = frame[y:y+width, x:x+width].copy()
        cv2.rectangle(frame,(x,y),(x+width,y+width),(255,0,0),2)

        face_image = cv2.resize(face_image,dsize=(FACE_WIDTH, FACE_WIDTH),interpolation=cv2.INTER_AREA)

    frame[0:FACE_WIDTH, 0:FACE_WIDTH] = face_image[:] # 좌측 상단에 출력
    return True

c = PiCam(show=True)
c.run(detect_face)
Ejemplo n.º 3
0
# import the necessary packages
from picam import PiCam
from time import sleep
import numpy as np
import cv2 as cv

res = (320, 240)
fps = 24

# initialize the camera
#camera = PiCam(res, fps, brightness=55, contrast=10)
#camera = PiCam(res, fps, awb_mode='shade')
camera = PiCam(res, fps, exposure_mode='night')

print('= eff =')
camera.effects()
print('= awb =')
camera.awbModes()
print('= exp =')
camera.exposureModes()

camera.videoCapture()

# allow the camera to warmup
sleep(2.0)

# capture frames from the camera
while True:
    frame = camera.current_frame
    cv.imshow('grid', frame)  # show grid