pythonプログラムについて相談です。
サーバ時刻をタイムスタンプとし、1秒ごとに画像を保存するプログラムを作成しました。
最初は順調に行くのですが、しばらくすると動作が止まってしまいます。
原因がわかる方、教えてください。
以下、ソースです。
lang
1#-*- coding: utf-8 -*- 2import cv2 3import time 4import os 5import glob 6import datetime 7 8#時間取得 9def now(server, port = 123): 10from socket import socket, AF_INET, SOCK_DGRAM 11from struct import unpack 12from datetime import datetime 13s = socket(AF_INET, SOCK_DGRAM) 14try: 15s.sendto('\x1b' + 47 * '\0', (server, port)) 16result = s.recvfrom(1024)[0] 17finally: 18s.close() 19if result: 20return datetime.fromtimestamp(unpack('!12I', result)[10] - 2208988800L) 21else: 22None 23 24 25def main(): 26 27# 画像トリミング 28x = 0; y = 0; # 切り抜きする座標(x, y) 29w = 640; h = 443; # 切り抜き範囲(幅, 高さ) 30 31# imgディレクトリが無ければ生成 32if os.path.exists("img")==False: 33os.mkdir("img") 34 35# カメラ映像の取得 36cap = cv2.VideoCapture(0) 37#時間取得 38t0 = time.clock() 39while True: 40# 時間取得 41im = cap.read()[1] 42 43# 処理時間取得 44dt = int((time.clock()-t0)*1000) 45if dt>1000: #1000msおきに取得 46#サーバ時刻取得 47tdatetime = now('サーバIPアドレス') 48tstr = tdatetime.strftime('%Y_%m_%d_%H_%M_%S') 49#画像保存 50im = im[y:y+h, x:x+w] 51cv2.imshow("Save Image",im) 52gazou = cv2.imwrite("img/" + tstr + ".jpg",im) 53 54# 処理時間の初期化 55dt=0 56t0 = time.clock() 57 58# キーが押されたらループから抜ける 59if cv2.waitKey(10) > 0: 60break 61 62# キャプチャー解放 63cap.release() 64# ウィンドウ破棄 65cv2.destroyAllWindows() 66 67 68if __name__ == '__main__': 69main()
止まった時ってエラーが出てないですか?
あなたの回答
tips
プレビュー