Last active
August 29, 2015 14:11
-
-
Save panchiga/086a1a0c2a2bc05a70c2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import cv2 | |
import serial | |
def main(): | |
#カメラの準備 | |
cap = cv2.VideoCapture(0) | |
#シリアル通信の準備 | |
ser = serial.Serial() | |
#シリアルポートは/dev/tty.usbmodem**となってるはず | |
ser.port = '/dev/tty.usbmodem1421' | |
ser.baudrate = 9600 | |
ser.open() | |
###画面を2値化して真っ白になったらシリアル送信### | |
while True: | |
flag = 0 | |
#frameにcapの1フレームを代入 | |
ret, frame = cap.read(0) | |
#速く回すために画面サイズを小さくした | |
frame = cv2.resize(frame,(100,100)) | |
#画面の2値化 | |
#閾値が今は170となっているが不安定ならここを変える | |
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) | |
retu, binal = cv2.threshold(gray, 170, 255, cv2.THRESH_BINARY) | |
#高速で回せる範囲内で画面が真っ白になったかを判定する | |
for height in range(30): | |
for width in range(30): | |
b = binal[height, width] | |
if flag == 1: | |
break | |
if b != 255: | |
flag = 1 | |
if flag == 1: | |
break | |
#画面が真っ白だったらシリアル送信 | |
if flag == 0: | |
ser.write('o') | |
#ちゃんと動いてる風か確認の為の画面の描画 | |
#cv2.imshow('framd', frame) | |
#cv2.imshow('bin',binal) | |
#おしまい | |
cap.release() | |
cv2.destroyAllWindow() | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Arduinoと一緒に動かすよ