| # camera.py | |
| import streamlit as st | |
| import cv2 | |
| import numpy as np | |
| from PIL import Image | |
| def take_picture(): | |
| # 打开摄像头 | |
| cap = cv2.VideoCapture(0) | |
| st.text("摄像头正在启动...") | |
| if cap.isOpened(): | |
| ret, frame = cap.read() | |
| if ret: | |
| st.image(frame, channels="BGR") # 显示视频帧 | |
| # 保存照片 | |
| img = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) | |
| img.save("captured_image.jpg") | |
| st.success("照片已保存!") | |
| else: | |
| st.error("无法捕获图像") | |
| else: | |
| st.error("无法打开摄像头") | |
| cap.release() | |
| if __name__ == "__main__": | |
| take_picture() | |