-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathColorimetryAnalysis.py
182 lines (111 loc) · 5.31 KB
/
ColorimetryAnalysis.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# -*- coding: utf-8 -*-
"""Análisis Colorimétrico en Paletas de Pantone.ipynb
Automatically generated by Colaboratory.
Original file is located at
https://colab.research.google.com/drive/1t1QeIrB1g7puwVVnO_IyCRrNL6q9_IV_
<center> <font size="6"><b>Segmentación Semántica y Análisis Colorimétrico </b>
<center><I>(Aplicación en Paletas de Pantone)</I><center>
"""
# Commented out IPython magic to ensure Python compatibility.
# %%capture
# !git clone https://github.com/josorio398/PyColorimetry_Library /content/PyColorimetry_Library
# !pip install -r /content/PyColorimetry_Library/requirements.txt
# !wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth
from PyColorimetry.ColorimetricAnalysis import *
"""# **Cargamos imagen para análisis**"""
image = Images('/content/PyColorimetry_Library/Pantone/IP_11_RED_NORMAL_TEFLON.jpg')
image.show
"""# **Cargamos modelo de segmentación semántica**"""
prompt = "squares"
masks, boxes, phrases, logits = image.generation_masks_prompt(prompt)
"""# **Visualización de máscaras**"""
image.display_masks(masks, boxes)
"""# **Visualización de máscaras etiquetadas**"""
image.display_masks(masks, boxes, box=True)
"""# **Reconocimiento de la máscara de referencia**"""
text_prompt = "white square in the upper left corner"
image.display_reference_mask(text_prompt)
reference_mask_image = image.reference_mask(text_prompt, mask_index=0, matrix = False)
reference_mask_matrix = image.reference_mask(text_prompt, mask_index=0, matrix = True)
reference_mask_image
"""# **Visualización de una máscara específica**"""
image.normalize_masks(reference_mask_matrix,24,masks,False)
"""# **Resumen**"""
sRGB = np.array([
[0.4124564, 0.3575761, 0.1804375],
[0.2126729, 0.7151522, 0.0721750],
[0.0193339, 0.1191920, 0.9503041]
])
Display_P3 = np.array([
[0.4865709486482162, 0.2656676931690933, 0.1982172852343625],
[0.2289745640697488, 0.6917385212341698, 0.07928691460043494],
[0.0000000000000000, 0.04511338185890307, 1.043944368900976]
])
conversion_matrix = sRGB
theoretical_values = "/content/PyColorimetry_Library/Theoretical_Data/Pantone_Red.csv"
mask_order=[6,24,5,14,32, 34,22,31,9,15, 8,2,3,4,23, 13,19,21,12,26, 29,27,25,18,28, 20,7,33,11,16, 30,10,1,0,17]
reference_mask = 16
df = image.pantone_summary(theoretical_values,mask_order,reference_mask_matrix,masks,reference_mask,conversion_matrix)
df
"""# **Visualización de los datos en el espacio CIELab**"""
data = Data(df)
data.PlotCIELab
"""# **Visualización de los datos en el plano ab**"""
data.Plotab
"""# **Visialización de los datos en plano aL**"""
data.PlotaL
# -*- coding: utf-8 -*-
"""Análisis Colorimétrico en Plantas.ipynb
Automatically generated by Colaboratory.
Original file is located at
https://colab.research.google.com/drive/1hFTLtxWTp6BqmmL3XfNTXR2iGTVsC5c5
<center> <font size="6"><b>Algoritmo de Segmentación Semántica y Análisis Colorimétrico</b>
<center><I>(Aplicación en Plantas)</I><center>
"""
# Commented out IPython magic to ensure Python compatibility.
# %%capture
# !git clone https://github.com/josorio398/PyColorimetry_Library /content/PyColorimetry_Library
# !pip install -r /content/PyColorimetry_Library/requirements.txt
# !wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth
from PyColorimetry.ColorimetricAnalysis import *
"""# **Cargamos imagen para análisis**"""
image = Images('/content/PyColorimetry_Library/Plants/Zinc_Dia1/Zinc3_D1.jpg')
image.show
"""# **Cargamos modelo de segmentación semántica**"""
masks, boxes, phrases, logits = image.generation_masks_prompt('leaves')
"""# **Visualización de máscaras**"""
image.display_masks(masks, boxes)
"""# **Visualización de máscaras etiquetadas**"""
image.display_masks(masks, boxes, box=True)
"""# **Reconocimiento de la máscara de referencia**"""
text_prompt = "small white rectangle"
image.display_reference_mask(text_prompt )
# Obtener la máscara de referencia como imagen y como matriz
reference_mask_image = image.reference_mask(text_prompt, mask_index=0, matrix = False)
reference_mask_matrix = image.reference_mask(text_prompt, mask_index=0, matrix = True)
reference_mask_image
"""# **Visualización de una máscara específica**"""
image.normalize_masks(reference_mask_matrix,1,masks,False)
"""# **Resumen**"""
# Crear un dataframe con los datos de las máscaras
df = image.plants_summary(reference_mask_matrix, masks)
df
"""# **Visualización de los datos en el espacio CIELab**"""
data = Data("/content/Dia_10.xlsx")
data.PlotCIELab
"""# **Visualización de los datos en el plano ab**"""
data.Plotab
"""# **Visialización de los datos en plano aL**"""
data.PlotaL
"""# **Posible número de cluster** - *método del codo*
---
"""
data.elbow_method
"""# **Asignación de Cluster**"""
data.clusters(3)
"""# **Visualización de cluster**"""
data.PlotClusterCIELab(3,distinction={"Control1_D1":"red","Control2_D1":"red","Control3_D1":"red"})
# 'red', 'blue', 'green', 'cyan', 'magenta', 'yellow', 'black', 'white', 'gray', 'purple',
data.PlotClusterCIELab(2,distinction={"Control1_D10":"red","Control2_D10":"red","Control3_D10":"red"})
data.PlotClusterab(n_clusters=3, distinction={"Zinc1_D10":"cyan","Zinc2_D10":"cyan","Zinc3_D10":"cyan"})
data.PlotClusteraL(n_clusters=3, distinction={"Zinc1_D1":"cyan","Zinc2_D1":"cyan","Zinc3_D1":"cyan"})