Jensen-holm commited on
Commit
69e0433
·
1 Parent(s): b22970b

init commit

Browse files
ClusterRGB/.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
ClusterRGB/.gitignore ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+
2
+ .DS_Store
3
+
4
+ .__pycache__
ClusterRGB/app.py ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import plotly.graph_objs as go
3
+ from sklearn.cluster import KMeans
4
+ import os
5
+
6
+
7
+ def _get_cluster_colors(cluster_centers) -> list[str]:
8
+ cluster_colors = []
9
+ for r, g, b in cluster_centers:
10
+ cluster_colors.append(f"rgb({r},{g},{b})")
11
+ return cluster_colors
12
+
13
+
14
+ def plot_image(Image, N_Clusters: int) -> gr.Plot:
15
+ img_flat = Image.reshape(-1, 3)
16
+ kmeans = KMeans(N_Clusters, random_state=1).fit(img_flat)
17
+ cluster_colors = _get_cluster_colors(kmeans.cluster_centers_)
18
+
19
+ fig = go.Figure(data=[go.Scatter3d(
20
+ x=kmeans.cluster_centers_[:, 0],
21
+ y=kmeans.cluster_centers_[:, 1],
22
+ z=kmeans.cluster_centers_[:, 2],
23
+ mode='markers',
24
+ marker=dict(
25
+ color=cluster_colors, # Set marker color to cluster colors
26
+ opacity=0.9,
27
+ )
28
+ )])
29
+
30
+ # Adjust layout, including axis labels
31
+ fig.update_layout(
32
+ scene=dict(
33
+ xaxis_title="Red Channel",
34
+ yaxis_title="Green Channel",
35
+ zaxis_title="Blue Channel"
36
+ ),
37
+ margin=dict(l=0, r=0, b=0, t=0)
38
+ )
39
+ return gr.Plot(fig)
40
+
41
+
42
+ interface = gr.Interface(
43
+ fn=plot_image,
44
+ title="3D RGB Plot",
45
+ inputs=[gr.Image(), gr.Slider(minimum=20, maximum=500)],
46
+ outputs=gr.Plot(),
47
+ examples=[[os.path.join("examples", image), 100] for image in os.listdir("examples")],
48
+ )
49
+
50
+
51
+ if __name__ == "__main__":
52
+ interface.launch()
53
+
ClusterRGB/examples/ex1.webp ADDED
ClusterRGB/examples/ex2.webp ADDED
ClusterRGB/examples/ex4.webp ADDED
ClusterRGB/examples/ex5.webp ADDED
ClusterRGB/examples/ex6.webp ADDED
ClusterRGB/examples/ex7.webp ADDED
ClusterRGB/requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ gradio==4.26.0
2
+ plotly==5.20.0
3
+ scikit_learn==1.4.1.post1