메뉴 건너뛰기

목록
2022.12.05 23:15

이제 정상작동됨

profile
조회 수 18 댓글 0 예스잼 1 노잼 0

No Attached Image

import cv2

import time

import serial

import serial.tools.list_ports

 

my_serial = serial.Serial("COM7", baudrate=9600, timeout = 1.0)

time.sleep(2.0)

def send_buzzer(freq):

    sendData = f"BUZZER={freq}\n"

    my_serial.write( sendData.encode() )

 

def main():

    cam = cv2.VideoCapture(0)

    cam.set(3,640)

    cam.set(4,480)

 

    face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

    eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')

 

    sleep_count = 0

    while( cam.isOpened() ):

        _, image = cam.read()

        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

 

        faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1,minNeighbors= 5,minSize=(50,50),

                                              flags=cv2.CASCADE_SCALE_IMAGE)

 

        if len(faces):

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

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

 

                face_gray = gray[y:y+h, x:x+w]

                face_color = image[y:y+h, x:x+w]

 

                eyes = eye_cascade.detectMultiScale(face_gray, scaleFactor=1.2,

                                                    minNeighbors=10)

 

                if len(eyes) == 0 :

                    if sleep_count < 1000:

                        sleep_count = sleep_count + 1

                    if sleep_count >= 1000:

                        print("BUZZ")

                        send_buzzer(1000)

                else:

                    if sleep_count >= 20:

                        sleep_count = sleep_count - 20

                    send_buzzer(0)

 

                for (ex, ey, ew, eh) in eyes:

                    cv2.rectangle(face_color, (ex,ey), (ex+ew,ey+eh), (0,255,0),2)

        print(sleep_count)

        cv2.imshow('result' , image)

 

        if cv2.waitKey(10) == ord('p'):

            break

 

    cv2.destroyAllWindows()

 

if __name__ == '__main__':

 

    ports = list(serial.tools.list_ports.comports())

    for p in ports:

        if 'Arduino Uno' in p.description:

            print(f"{p}포트에 연결하였습니다.")

            my_serial = serial.Serial(p.device, baudrate=9600, timeout=1.0)

            time.sleep(2.0)

 

    main()

 

    my_serial.close()

 

추가할만한 코드 : 자리를 비웠을때 카운트가 올라가게 해서 일정 시간(5분)이 경과하면 부저가 올리게 하기 

 

            


List of Articles
번호 제목 글쓴이 날짜 조회 수 추천
공지 수용소닷컴 이용약관 file asuka 2020.05.16 1313 1
1072 매트랩으로 하는 AI 프로젝트 0001 6 file 삼육두유 2022.12.17 55 1
» 이제 정상작동됨 그리드 2022.12.05 18 1
1070 씻팔 1 file 저능아 2022.11.06 11 1
1069 가정용 에어컨에 들어가는 냉매가 R-410에서 R-32로 바뀔려고 함 4 file 쓰레기 2022.08.01 141 1
1068 혹시 갤럭시 잠금 풀때마다 렉걸리는 현상 있으면 1 file 히마와리 2022.07.19 53 1
1067 저소득층일수록 인터넷 접근을 스마트폰으로 한다고 함 2 file 히마와리 2022.07.05 39 1
1066 안드로이드 점점 쓸데없는 제한이 많아지는 것 같음 1 file 히마와리 2022.06.06 36 1
1065 MS오피스 워드 파일에서 치명적인 취약점 발견 1 file 히마와리 2022.06.03 35 1
1064 윈도우 우분투 듀얼부팅하고 코딩 공부하던건 도커로 올려버림 2 file 히마와리 2022.06.02 30 1
1063 해봐도 잘 모르겠다 7 file 삼육두유 2022.04.29 62 1
1062 이 새끼들이 장난치나 4 file 삼육두유 2022.03.12 49 1
1061 똑똑이들이 얼추 다 연구 해뒀었네 1 file 삼육두유 2022.03.10 59 1
1060 그래프QL 너무 딱좋음 2 file 히마와리 2022.02.03 82 1
1059 윈도우 프로그램 만드려구 9 MDR 2021.12.18 72 1
1058 꺼토미 소스코드 보고있는데 1 midori 2021.12.05 98 1
1057 동영상 자르는방법 5 으ㅇ유ㅏ」 2021.12.01 77 1
1056 오늘의 개발 생각 정리 1 마루쉐 2021.11.24 95 1
1055 생각해보니 서버호스팅보다 lightsail이 더 저렴한것같음 2 아메 2021.11.23 84 1
1054 타입스크립트 간단히 테스트하기좋은곳 4 file 으ㅇ유ㅏ」 2021.11.22 91 1
1053 저 칭찬해주셈 11 고졸빡통아오바 2021.11.09 65 1
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 56 Next
/ 56