ake178178 commited on
Commit
310ebaf
·
verified ·
1 Parent(s): de265fd

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -0
app.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import cv2
3
+ import numpy as np
4
+ from PIL import Image
5
+
6
+ # 打开摄像头
7
+ def load_camera():
8
+ cap = cv2.VideoCapture(0) # 0 是默认摄像头的索引
9
+ if not cap.isOpened():
10
+ st.error("Cannot open camera")
11
+ return None
12
+ return cap
13
+
14
+ # 捕获图片
15
+ def capture_image(cap):
16
+ ret, frame = cap.read()
17
+ if not ret:
18
+ st.error("Can't receive frame (stream end?). Exiting ...")
19
+ return None
20
+ return frame
21
+
22
+ # 主程序
23
+ def main():
24
+ st.title("Camera Capture with Streamlit")
25
+
26
+ # 摄像头对象
27
+ cap = load_camera()
28
+
29
+ if cap:
30
+ st.sidebar.button("Click to Capture", key="capture")
31
+ frame = capture_image(cap)
32
+
33
+ if frame is not None:
34
+ # 将图像从BGR转换为RGB
35
+ frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
36
+ img = Image.fromarray(frame_rgb)
37
+
38
+ # 显示图像
39
+ st.image(img, caption="Captured Image", use_column_width=True)
40
+
41
+ # 释放摄像头资源
42
+ cap.release()
43
+
44
+ if __name__ == "__main__":
45
+ main()