awacke1 commited on
Commit
1f9c759
Β·
verified Β·
1 Parent(s): 2c4a99a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +76 -67
app.py CHANGED
@@ -1,7 +1,4 @@
1
  import streamlit as st
2
- import pandas as pd
3
- from datetime import datetime
4
- import os
5
  import cv2
6
  from PIL import Image
7
  import numpy as np
@@ -16,7 +13,7 @@ import fitz # pymupdf
16
  import borb.pdf
17
  import pdf2image
18
  import vidgear.gears
19
- import moviepy.editor
20
  import av
21
  import pydub
22
  import sounddevice as sd
@@ -28,8 +25,8 @@ st.write("Watch these libraries flex their muscles with live demos producing rea
28
 
29
  # πŸ“œ Demo Functions
30
  def demo_pypdf():
31
- with open("demo.pdf", "w") as f:
32
- f.write("Hello from pypdf!")
33
  reader = pypdf.PdfReader("demo.pdf")
34
  return reader.pages[0].extract_text() if reader.pages else "No text found!"
35
 
@@ -40,8 +37,8 @@ def demo_pikepdf():
40
  return "demo_pikepdf.pdf"
41
 
42
  def demo_pdfminer():
43
- with open("demo.pdf", "w") as f:
44
- f.write("PDFminer magic!")
45
  text = pdfminer.high_level.extract_text("demo.pdf")
46
  return text
47
 
@@ -58,8 +55,8 @@ def demo_pdfkit():
58
  return "demo_pdfkit.pdf"
59
 
60
  def demo_pdfplumber():
61
- with open("demo.pdf", "w") as f:
62
- f.write("Plumb this text!")
63
  with pdfplumber.open("demo.pdf") as pdf:
64
  return pdf.pages[0].extract_text() if pdf.pages else "No text!"
65
 
@@ -78,8 +75,8 @@ def demo_borb():
78
  return "demo_borb.pdf"
79
 
80
  def demo_pdf2image():
81
- with open("demo.pdf", "w") as f:
82
- f.write("Image this!")
83
  images = pdf2image.convert_from_path("demo.pdf")
84
  images[0].save("demo_pdf2image.jpg")
85
  return "demo_pdf2image.jpg"
@@ -131,33 +128,36 @@ if demo_type == "PDF":
131
  ])
132
  if st.button("Run PDF Demo"):
133
  with st.spinner("Running demo..."):
134
- if demo == "pypdf":
135
- result = demo_pypdf()
136
- st.write("Extracted Text:", result)
137
- elif demo == "pikepdf":
138
- result = demo_pikepdf()
139
- st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
140
- elif demo == "pdfminer.six":
141
- result = demo_pdfminer()
142
- st.write("Extracted Text:", result)
143
- elif demo == "fpdf2":
144
- result = demo_fpdf()
145
- st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
146
- elif demo == "pdfkit":
147
- result = demo_pdfkit()
148
- st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
149
- elif demo == "pdfplumber":
150
- result = demo_pdfplumber()
151
- st.write("Extracted Text:", result)
152
- elif demo == "pymupdf":
153
- result = demo_pymupdf()
154
- st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
155
- elif demo == "borb":
156
- result = demo_borb()
157
- st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
158
- elif demo == "pdf2image":
159
- result = demo_pdf2image()
160
- st.image(result, caption="Converted PDF to Image")
 
 
 
161
 
162
  # πŸ“Έ Image Capture Demos
163
  elif demo_type == "Image Capture":
@@ -165,18 +165,21 @@ elif demo_type == "Image Capture":
165
  demo = st.selectbox("Pick an Image Demo", ["opencv-python", "imutils"])
166
  if st.button("Run Image Demo"):
167
  with st.spinner("Capturing image..."):
168
- if demo == "opencv-python":
169
- result = demo_opencv_image()
170
- if result:
171
- st.image(result, caption="Snapped with OpenCV!")
172
- else:
173
- st.error("Camera not detected!")
174
- elif demo == "imutils":
175
- result = demo_imutils()
176
- if result:
177
- st.image(result, caption="Snapped with Imutils!")
178
- else:
179
- st.error("Camera not detected!")
 
 
 
180
 
181
  # πŸŽ₯ Video Capture Demos
182
  elif demo_type == "Video Capture":
@@ -184,18 +187,21 @@ elif demo_type == "Video Capture":
184
  demo = st.selectbox("Pick a Video Demo", ["opencv-python", "vidgear"])
185
  if st.button("Run Video Demo"):
186
  with st.spinner("Capturing video frame..."):
187
- if demo == "opencv-python":
188
- result = demo_opencv_image() # Using image capture as a proxy
189
- if result:
190
- st.image(result, caption="Frame from OpenCV Video!")
191
- else:
192
- st.error("Camera not detected!")
193
- elif demo == "vidgear":
194
- result = demo_vidgear()
195
- if result:
196
- st.image(result, caption="Frame from VidGear Video!")
197
- else:
198
- st.error("Camera not detected!")
 
 
 
199
 
200
  # 🎡 Audio Capture Demos
201
  elif demo_type == "Audio Capture":
@@ -203,10 +209,13 @@ elif demo_type == "Audio Capture":
203
  demo = st.selectbox("Pick an Audio Demo", ["sounddevice"])
204
  if st.button("Run Audio Demo"):
205
  with st.spinner("Recording audio (2 seconds)..."):
206
- if demo == "sounddevice":
207
- result = demo_sounddevice()
208
- st.audio(result, format="audio/wav")
209
- st.download_button("Download Audio", open(result, "rb").read(), file_name=result)
 
 
 
210
 
211
  # πŸ“Š Results Display
212
  st.write("### Results")
 
1
  import streamlit as st
 
 
 
2
  import cv2
3
  from PIL import Image
4
  import numpy as np
 
13
  import borb.pdf
14
  import pdf2image
15
  import vidgear.gears
16
+ import moviepy.editor as mp # Corrected import
17
  import av
18
  import pydub
19
  import sounddevice as sd
 
25
 
26
  # πŸ“œ Demo Functions
27
  def demo_pypdf():
28
+ with open("demo.pdf", "wb") as f: # Binary mode for PDF
29
+ f.write(b"Hello from pypdf!") # Binary string
30
  reader = pypdf.PdfReader("demo.pdf")
31
  return reader.pages[0].extract_text() if reader.pages else "No text found!"
32
 
 
37
  return "demo_pikepdf.pdf"
38
 
39
  def demo_pdfminer():
40
+ with open("demo.pdf", "wb") as f:
41
+ f.write(b"PDFminer magic!")
42
  text = pdfminer.high_level.extract_text("demo.pdf")
43
  return text
44
 
 
55
  return "demo_pdfkit.pdf"
56
 
57
  def demo_pdfplumber():
58
+ with open("demo.pdf", "wb") as f:
59
+ f.write(b"Plumb this text!")
60
  with pdfplumber.open("demo.pdf") as pdf:
61
  return pdf.pages[0].extract_text() if pdf.pages else "No text!"
62
 
 
75
  return "demo_borb.pdf"
76
 
77
  def demo_pdf2image():
78
+ with open("demo.pdf", "wb") as f:
79
+ f.write(b"Image this!")
80
  images = pdf2image.convert_from_path("demo.pdf")
81
  images[0].save("demo_pdf2image.jpg")
82
  return "demo_pdf2image.jpg"
 
128
  ])
129
  if st.button("Run PDF Demo"):
130
  with st.spinner("Running demo..."):
131
+ try:
132
+ if demo == "pypdf":
133
+ result = demo_pypdf()
134
+ st.write("Extracted Text:", result)
135
+ elif demo == "pikepdf":
136
+ result = demo_pikepdf()
137
+ st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
138
+ elif demo == "pdfminer.six":
139
+ result = demo_pdfminer()
140
+ st.write("Extracted Text:", result)
141
+ elif demo == "fpdf2":
142
+ result = demo_fpdf()
143
+ st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
144
+ elif demo == "pdfkit":
145
+ result = demo_pdfkit()
146
+ st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
147
+ elif demo == "pdfplumber":
148
+ result = demo_pdfplumber()
149
+ st.write("Extracted Text:", result)
150
+ elif demo == "pymupdf":
151
+ result = demo_pymupdf()
152
+ st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
153
+ elif demo == "borb":
154
+ result = demo_borb()
155
+ st.download_button("Download PDF", open(result, "rb").read(), file_name=result)
156
+ elif demo == "pdf2image":
157
+ result = demo_pdf2image()
158
+ st.image(result, caption="Converted PDF to Image")
159
+ except Exception as e:
160
+ st.error(f"Demo failed: {str(e)}")
161
 
162
  # πŸ“Έ Image Capture Demos
163
  elif demo_type == "Image Capture":
 
165
  demo = st.selectbox("Pick an Image Demo", ["opencv-python", "imutils"])
166
  if st.button("Run Image Demo"):
167
  with st.spinner("Capturing image..."):
168
+ try:
169
+ if demo == "opencv-python":
170
+ result = demo_opencv_image()
171
+ if result:
172
+ st.image(result, caption="Snapped with OpenCV!")
173
+ else:
174
+ st.error("Camera not detected!")
175
+ elif demo == "imutils":
176
+ result = demo_imutils()
177
+ if result:
178
+ st.image(result, caption="Snapped with Imutils!")
179
+ else:
180
+ st.error("Camera not detected!")
181
+ except Exception as e:
182
+ st.error(f"Demo failed: {str(e)}")
183
 
184
  # πŸŽ₯ Video Capture Demos
185
  elif demo_type == "Video Capture":
 
187
  demo = st.selectbox("Pick a Video Demo", ["opencv-python", "vidgear"])
188
  if st.button("Run Video Demo"):
189
  with st.spinner("Capturing video frame..."):
190
+ try:
191
+ if demo == "opencv-python":
192
+ result = demo_opencv_image() # Using image capture as a proxy
193
+ if result:
194
+ st.image(result, caption="Frame from OpenCV Video!")
195
+ else:
196
+ st.error("Camera not detected!")
197
+ elif demo == "vidgear":
198
+ result = demo_vidgear()
199
+ if result:
200
+ st.image(result, caption="Frame from VidGear Video!")
201
+ else:
202
+ st.error("Camera not detected!")
203
+ except Exception as e:
204
+ st.error(f"Demo failed: {str(e)}")
205
 
206
  # 🎡 Audio Capture Demos
207
  elif demo_type == "Audio Capture":
 
209
  demo = st.selectbox("Pick an Audio Demo", ["sounddevice"])
210
  if st.button("Run Audio Demo"):
211
  with st.spinner("Recording audio (2 seconds)..."):
212
+ try:
213
+ if demo == "sounddevice":
214
+ result = demo_sounddevice()
215
+ st.audio(result, format="audio/wav")
216
+ st.download_button("Download Audio", open(result, "rb").read(), file_name=result)
217
+ except Exception as e:
218
+ st.error(f"Demo failed: {str(e)}")
219
 
220
  # πŸ“Š Results Display
221
  st.write("### Results")