Spaces:
Runtime error
Runtime error
PUSH
Browse files- DFK33UX174.json +17 -0
- Raspi_Cam.json +17 -0
- app.py +103 -0
- camera_parameters.json +1 -0
- requirements.txt +5 -0
DFK33UX174.json
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cameraName": "DFK-33UX174",
|
3 |
+
"cameraSensorWidth": 5.86,
|
4 |
+
"cameraSensorHeight": 5.86,
|
5 |
+
"iCx": 948.0,
|
6 |
+
"iCy": 576.0,
|
7 |
+
"ratio": 1,
|
8 |
+
"imageWidth": 1920,
|
9 |
+
"imageHeight": 1200,
|
10 |
+
"calibrationRatio": 3,
|
11 |
+
"parameter0": 0,
|
12 |
+
"parameter1": 3.6546,
|
13 |
+
"parameter2": -16.963,
|
14 |
+
"parameter3": 23.279,
|
15 |
+
"parameter4": -8.6849,
|
16 |
+
"parameter5": 84.09
|
17 |
+
}
|
Raspi_Cam.json
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cameraName": "resp220",
|
3 |
+
"cameraSensorWidth": 1.4,
|
4 |
+
"cameraSensorHeight": 1.4,
|
5 |
+
"iCx": 1298,
|
6 |
+
"iCy": 966,
|
7 |
+
"ratio": 1.0,
|
8 |
+
"imageWidth": 2592,
|
9 |
+
"imageHeight": 1944,
|
10 |
+
"calibrationRatio": 4.05,
|
11 |
+
"parameter0": 0,
|
12 |
+
"parameter1": 0,
|
13 |
+
"parameter2": 0,
|
14 |
+
"parameter3": 0,
|
15 |
+
"parameter4": -47.96,
|
16 |
+
"parameter5": 222.86
|
17 |
+
}
|
app.py
ADDED
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import cv2
|
2 |
+
import streamlit as st
|
3 |
+
from streamlit_webrtc import webrtc_streamer
|
4 |
+
import numpy as np
|
5 |
+
from PIL import Image
|
6 |
+
from Moildev import Moildev
|
7 |
+
import threading
|
8 |
+
|
9 |
+
moildev = Moildev('Raspi_Cam.json')
|
10 |
+
|
11 |
+
def brighten_image(image, amount):
|
12 |
+
img_bright = cv2.convertScaleAbs(image, beta=amount)
|
13 |
+
return img_bright
|
14 |
+
|
15 |
+
|
16 |
+
def anypoint_image(image, alpha, beta, zoom, mode):
|
17 |
+
any_image = moildev.anypoint(image, alpha, beta, zoom, mode)
|
18 |
+
return any_image
|
19 |
+
|
20 |
+
|
21 |
+
def main_loop():
|
22 |
+
|
23 |
+
|
24 |
+
st.title("MoilDev Demo App")
|
25 |
+
st.subheader("This app allows you to play with Image filters!")
|
26 |
+
st.text("We use OpenCV and Streamlit for this demo")
|
27 |
+
|
28 |
+
|
29 |
+
# radio
|
30 |
+
source = st.sidebar.radio('Sources:', ('image','video'))
|
31 |
+
|
32 |
+
if source == 'image':
|
33 |
+
|
34 |
+
# slider
|
35 |
+
zoom = st.sidebar.slider("Zoom", min_value=1.0, max_value=3.5, value=1.2)
|
36 |
+
alpha = st.sidebar.slider("Alpha", min_value=0.0, max_value=180.0, value=60.0)
|
37 |
+
beta = st.sidebar.slider("Beta", min_value=0.0, max_value=180.0, value=60.0)
|
38 |
+
brightness_amount = st.sidebar.slider("Brightness", min_value=-50, max_value=50, value=0)
|
39 |
+
|
40 |
+
# checkbox
|
41 |
+
mode_filter = st.sidebar.checkbox('Car Mode')
|
42 |
+
|
43 |
+
image_file = st.file_uploader("Upload Your Image", type=['jpg', 'png', 'jpeg'])
|
44 |
+
if not image_file:
|
45 |
+
return None
|
46 |
+
|
47 |
+
original_image = Image.open(image_file)
|
48 |
+
original_image = np.array(original_image)
|
49 |
+
|
50 |
+
if mode_filter == 1:
|
51 |
+
processed_image = anypoint_image(original_image, alpha=alpha, beta=beta, zoom=zoom, mode=1)
|
52 |
+
|
53 |
+
else:
|
54 |
+
processed_image = anypoint_image(original_image, alpha=alpha, beta=beta, zoom=zoom, mode=2)
|
55 |
+
|
56 |
+
|
57 |
+
processed_image = brighten_image(processed_image, brightness_amount)
|
58 |
+
st.text("Original Image vs Processed Image")
|
59 |
+
st.image([original_image, processed_image])
|
60 |
+
|
61 |
+
if source == 'video':
|
62 |
+
|
63 |
+
# slider
|
64 |
+
zoom = st.sidebar.slider("Zoom", min_value=1.0, max_value=3.5, value=1.2)
|
65 |
+
alpha = st.sidebar.slider("Alpha", min_value=0.0, max_value=180.0, value=60.0)
|
66 |
+
beta = st.sidebar.slider("Beta", min_value=0.0, max_value=180.0, value=60.0)
|
67 |
+
|
68 |
+
# checkbox
|
69 |
+
mode_filter = st.sidebar.checkbox('Car Mode')
|
70 |
+
|
71 |
+
lock = threading.Lock()
|
72 |
+
img_container = {"img": None}
|
73 |
+
|
74 |
+
def video_frame_callback(frame):
|
75 |
+
img = frame.to_ndarray(format="bgr24")
|
76 |
+
with lock:
|
77 |
+
img_container["img"] = img
|
78 |
+
return frame
|
79 |
+
|
80 |
+
ctx = webrtc_streamer(key="example", video_frame_callback=video_frame_callback)
|
81 |
+
vsn_place = st.empty()
|
82 |
+
|
83 |
+
|
84 |
+
while ctx.state.playing:
|
85 |
+
cv2.waitKey(10)
|
86 |
+
|
87 |
+
with lock:
|
88 |
+
img = img_container["img"]
|
89 |
+
if img is None:
|
90 |
+
continue
|
91 |
+
|
92 |
+
if mode_filter == 1:
|
93 |
+
processed_image = anypoint_image(img, alpha=alpha, beta=beta, zoom=zoom, mode=1)
|
94 |
+
vsn_place.image(processed_image)
|
95 |
+
|
96 |
+
else:
|
97 |
+
processed_image = anypoint_image(img, alpha=alpha, beta=beta, zoom=zoom, mode=2)
|
98 |
+
vsn_place.image(processed_image)
|
99 |
+
|
100 |
+
|
101 |
+
|
102 |
+
if __name__ == '__main__':
|
103 |
+
main_loop()
|
camera_parameters.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"Axis": {"cameraName": "axis", "cameraFov": 220, "cameraSensorWidth": 1.4, "cameraSensorHeight": 1.4, "iCx": 1439, "iCy": 1439, "ratio": 1.0, "imageWidth": 2880, "imageHeight": 2880, "calibrationRatio": 6, "parameter0": 0, "parameter1": 0, "parameter2": 0, "parameter3": -7.76, "parameter4": 7.3355, "parameter5": 156.36}, "Raspi": {"cameraName": "resp220", "cameraFov": 220, "cameraSensorWidth": 1.4, "cameraSensorHeight": 1.4, "iCx": 1298, "iCy": 966, "ratio": 1.0, "imageWidth": 2592, "imageHeight": 1944, "calibrationRatio": 4.05, "parameter0": 0, "parameter1": 0, "parameter2": 0, "parameter3": 0, "parameter4": -47.96, "parameter5": 222.86}, "Intel_L": {"cameraName": "Intel-T265", "cameraFov": 180,"cameraSensorWidth": 3, "cameraSensorHeight": 3, "iCx": 429, "iCy": 395, "ratio": 1, "imageWidth": 848, "imageHeight": 800, "calibrationRatio": 1.67, "parameter0": 0, "parameter1": 0, "parameter2": -24.964, "parameter3": 38.2, "parameter4": -16.956, "parameter5": 183.42}, "Intel_R": {"cameraName": "Intel-T265", "cameraFov": 180, "cameraSensorWidth": 3, "cameraSensorHeight": 3, "iCx": 431, "iCy": 397, "ratio": 1, "imageWidth": 848, "imageHeight": 800, "calibrationRatio": 1.67, "parameter0": 0, "parameter1": 0, "parameter2": -24.964, "parameter3": 38.2, "parameter4": -16.956, "parameter5": 183.42}, "socionext": {"cameraName": "socionext", "cameraFov": 180,"cameraSensorWidth": 1.14, "cameraSensorHeight": 1.69, "iCx": 950, "iCy": 744, "ratio": 1.48, "imageWidth": 1920, "imageHeight": 1440, "calibrationRatio": 3.0, "parameter0": 0, "parameter1": 0, "parameter2": 0, "parameter3": -15.921, "parameter4": 31.337, "parameter5": 140.48}, "entaniya": {"cameraName": "entaniya","cameraFov": 220, "cameraSensorWidth": 1.2, "cameraSensorHeight": 1.2, "iCx": 1295, "iCy": 972, "ratio": 1.0, "imageWidth": 2592, "imageHeight": 1944, "calibrationRatio": 4.05, "parameter0": 0.0, "parameter1": 0.0, "parameter2": 0.0, "parameter3": -17.539, "parameter4": 31.802, "parameter5": 133.39}, "endoscope": {"cameraName": "endoscope", "cameraFov": 180,"cameraSensorWidth": 2.0, "cameraSensorHeight": 2.0, "iCx": 1120, "iCy": 520, "ratio": 1.0, "imageWidth": 1920, "imageHeight": 1080, "calibrationRatio": 4.05, "parameter0": 0.0, "parameter1": 0.0, "parameter2": 0.0, "parameter3": 0.0, "parameter4": 0.0, "parameter5": 130.0}}
|
requirements.txt
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
streamlit==1.10.0
|
2 |
+
opencv-python==4.6.0.66
|
3 |
+
Pillow==9.1.1
|
4 |
+
Moildev==3.1.0
|
5 |
+
streamlit-webrtc==0.40.0
|