import cv2
from flask import Flask, Response
app = Flask(__name__)
camera = cv2.VideoCapture(0) # 기본 카메라를 사용합니다.
def generate_frames():
while True:
success, frame = camera.read()
if not success:
break
else:
ret, buffer = cv2.imencode('.jpg', frame)
frame = buffer.tobytes()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
@app.route('/video_feed')
def video_feed():
return Response(generate_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')
@app.route('/')
def index():
return """
<html>
<body>
<img src='/video_feed' width='1280' height='720' />
</body>
</html>
"""
if __name__ == '__main__':
app.run(host='192.168.0.13', port=5000)
import cv2
import threading
import time
from flask import Flask, Response
import os
# 경로 설정 확인 및 생성
save_path = '/home/pi/3d'
if not os.path.exists(save_path):
os.makedirs(save_path)
app = Flask(__name__)
camera = cv2.VideoCapture(0) # 기본 카메라를 사용합니다.
def generate_frames():
while True:
success, frame = camera.read()
if not success:
break
else:
ret, buffer = cv2.imencode('.jpg', frame)
frame = buffer.tobytes()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
@app.route('/video_feed')
def video_feed():
return Response(generate_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')
@app.route('/')
def index():
return """
<html>
<body>
<img src='/video_feed' width='1280' height='720' />
</body>
</html>
"""
def capture_images():
while True:
# 현재 시간을 기반으로 파일명 생성
timestamp = time.strftime('%Y-%m-%d_%H-%M-%S')
file_name = os.path.join(save_path, f'{timestamp}.jpg')
success, frame = camera.read()
if success:
cv2.imwrite(file_name, frame)
time.sleep(1500) # 2초마다 사진 촬영
if __name__ == '__main__':
# 사진 촬영을 위한 별도의 스레드 시작
thread = threading.Thread(target=capture_images)
thread.daemon = True
thread.start()
# Flask 앱 실행
app.run(host='192.168.0.13', port=5000, threaded=True)
Copyright ⓒ TECH79 All right reserved