Spaces:
Running
on
Zero
Running
on
Zero
inst
Browse files
app.py
CHANGED
|
@@ -121,6 +121,23 @@ COLOR_MAPS = [
|
|
| 121 |
"Cyan Hot",
|
| 122 |
"Magenta Hot"
|
| 123 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 124 |
|
| 125 |
# --- Helper Functions ---
|
| 126 |
def sanitize_prompt_for_filename(prompt):
|
|
@@ -152,19 +169,13 @@ def generate_colorbar_preview(color_name):
|
|
| 152 |
step_1_red = np.clip(gradient * 3, 0, 1)
|
| 153 |
step_2_red = np.clip((gradient - 0.333) * 3, 0, 1)
|
| 154 |
step_3_red = np.clip((gradient - 0.666) * 3, 0, 1)
|
| 155 |
-
|
| 156 |
-
step_1_cyan = np.clip(gradient * 3, 0, 1)
|
| 157 |
-
step_2_cyan = np.clip((gradient - 0.333) * 3, 0, 1)
|
| 158 |
-
step_3_cyan = np.clip((gradient - 0.666) * 3, 0, 1)
|
| 159 |
-
|
| 160 |
if color_name == "Red Hot":
|
| 161 |
rgb[..., 0] = step_1_red
|
| 162 |
rgb[..., 1] = step_2_red
|
| 163 |
rgb[..., 2] = step_3_red
|
| 164 |
elif color_name == "Cyan Hot":
|
| 165 |
-
|
| 166 |
-
rgb[
|
| 167 |
-
rgb[..., 0] = step_3_cyan
|
| 168 |
|
| 169 |
elif color_name == "Green (GFP)": rgb[..., 1] = gradient
|
| 170 |
elif color_name == "Red (RFP)": rgb[..., 0] = gradient
|
|
@@ -212,19 +223,13 @@ def apply_pseudocolor(image_np, color_name="Grayscale"):
|
|
| 212 |
step_1_red = np.clip(norm_img * 3, 0, 1)
|
| 213 |
step_2_red = np.clip((norm_img - 0.333) * 3, 0, 1)
|
| 214 |
step_3_red = np.clip((norm_img - 0.666) * 3, 0, 1)
|
| 215 |
-
|
| 216 |
-
step_1_cyan = np.clip(norm_img * 3, 0, 1)
|
| 217 |
-
step_2_cyan = np.clip((norm_img - 0.333) * 3, 0, 1)
|
| 218 |
-
step_3_cyan = np.clip((norm_img - 0.666) * 3, 0, 1)
|
| 219 |
-
|
| 220 |
if color_name == "Red Hot":
|
| 221 |
rgb[..., 0] = step_1_red
|
| 222 |
rgb[..., 1] = step_2_red
|
| 223 |
rgb[..., 2] = step_3_red
|
| 224 |
elif color_name == "Cyan Hot":
|
| 225 |
-
|
| 226 |
-
rgb[
|
| 227 |
-
rgb[..., 0] = step_3_cyan
|
| 228 |
|
| 229 |
elif color_name == "Green (GFP)": rgb[..., 1] = norm_img
|
| 230 |
elif color_name == "Red (RFP)": rgb[..., 0] = norm_img
|
|
|
|
| 121 |
"Cyan Hot",
|
| 122 |
"Magenta Hot"
|
| 123 |
]
|
| 124 |
+
CYAN_HOT_POINTS = [
|
| 125 |
+
(0.00, (0, 0, 0)), # 0% 亮度
|
| 126 |
+
(0.20, (0, 69, 143)), # 20% 亮度
|
| 127 |
+
(0.50, (0, 183, 255)), # 50% 亮度
|
| 128 |
+
(0.80, (89, 255, 255)), # 80% 亮度
|
| 129 |
+
(1.00, (255, 255, 255)), # 100% 亮度
|
| 130 |
+
]
|
| 131 |
+
def get_rgb_interpolation(val_norm, rgb_points):
|
| 132 |
+
x_pts = [p[0] for p in rgb_points]
|
| 133 |
+
r_pts = [p[1][0] / 255.0 for p in rgb_points] # 归一化到 0-1
|
| 134 |
+
g_pts = [p[1][1] / 255.0 for p in rgb_points]
|
| 135 |
+
b_pts = [p[1][2] / 255.0 for p in rgb_points]
|
| 136 |
+
|
| 137 |
+
r = np.interp(val_norm, x_pts, r_pts)
|
| 138 |
+
g = np.interp(val_norm, x_pts, g_pts)
|
| 139 |
+
b = np.interp(val_norm, x_pts, b_pts)
|
| 140 |
+
return r, g, b
|
| 141 |
|
| 142 |
# --- Helper Functions ---
|
| 143 |
def sanitize_prompt_for_filename(prompt):
|
|
|
|
| 169 |
step_1_red = np.clip(gradient * 3, 0, 1)
|
| 170 |
step_2_red = np.clip((gradient - 0.333) * 3, 0, 1)
|
| 171 |
step_3_red = np.clip((gradient - 0.666) * 3, 0, 1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 172 |
if color_name == "Red Hot":
|
| 173 |
rgb[..., 0] = step_1_red
|
| 174 |
rgb[..., 1] = step_2_red
|
| 175 |
rgb[..., 2] = step_3_red
|
| 176 |
elif color_name == "Cyan Hot":
|
| 177 |
+
r, g, b = get_rgb_interpolation(gradient, CYAN_HOT_POINTS)
|
| 178 |
+
rgb = np.stack([r, g, b], axis=-1)
|
|
|
|
| 179 |
|
| 180 |
elif color_name == "Green (GFP)": rgb[..., 1] = gradient
|
| 181 |
elif color_name == "Red (RFP)": rgb[..., 0] = gradient
|
|
|
|
| 223 |
step_1_red = np.clip(norm_img * 3, 0, 1)
|
| 224 |
step_2_red = np.clip((norm_img - 0.333) * 3, 0, 1)
|
| 225 |
step_3_red = np.clip((norm_img - 0.666) * 3, 0, 1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 226 |
if color_name == "Red Hot":
|
| 227 |
rgb[..., 0] = step_1_red
|
| 228 |
rgb[..., 1] = step_2_red
|
| 229 |
rgb[..., 2] = step_3_red
|
| 230 |
elif color_name == "Cyan Hot":
|
| 231 |
+
r, g, b = get_rgb_interpolation(norm_img, CYAN_HOT_POINTS)
|
| 232 |
+
rgb = np.stack([r, g, b], axis=-1)
|
|
|
|
| 233 |
|
| 234 |
elif color_name == "Green (GFP)": rgb[..., 1] = norm_img
|
| 235 |
elif color_name == "Red (RFP)": rgb[..., 0] = norm_img
|