메뉴 건너뛰기

목록
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 1345 1
959 RTX 3090 예상가 1,499$ 맞냐? 1 file 땅크4호 2020.08.27 94 0
958 노트북에 써멀그리즐리 컨덕터넛 바르면 3 file 땅크4호 2020.08.28 94 0
957 TSMC, "5nm 공정이 7nm 공정보다 수율 더 좋다" 땅크4호 2020.08.28 91 0
956 애자락 쓰면 안되는 이유 1 file shiho 2020.09.01 100 0
955 인텔, 타이거레이크 홍보 동영상 유출 shiho 2020.09.01 69 0
954 삭제된 게시글입니다. clownpepe 2020.09.03 50 0
953 AMD, 산악 자전거 출시 file shiho 2020.09.06 95 0
952 잣알 그라드 2020.09.06 49 0
951 질문)사이트를 하나 만들어 보려고 함 8 주갤롬 2020.09.07 108 0
950 노트북에 리눅스 올리는것도 3 그라드 2020.09.08 59 0
949 삭제된 게시글입니다. 스마일 2020.09.08 65 0
948 비쥬얼 스튜디오 삐꾸나서 삭제가 안될때 강제삭제하는방법 늒비임 2020.09.09 130 0
947 혹시 소프트웨어 기술자신고 등록해본 부타있음? file 阿米娅 2020.09.10 99 0
946 모니터 교체시기 4 file サキ 2020.09.10 103 0
945 명령창 투명하게 하니 참 편하노 clownpepe 2020.09.10 56 0
944 쓰레기 공부계획 ㅇ 2 그라드 2020.09.12 67 0
943 책이 왔기에 또 공부를 합니다 ... 그라드 2020.09.16 41 0
942 PS5 499, 399달러 / 11월 19일 전세계 출시 (한국 11월 12일) file shiho 2020.09.17 46 0
941 삭제된 게시글입니다. 스마일 2020.09.17 45 0
940 삭제된 게시글입니다. 스마일 2020.09.18 57 0
목록
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 56 Next
/ 56