more progress on key generation
parent
d8bb0c7565
commit
37fd33c0f3
Binary file not shown.
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Binary file not shown.
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 9.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 7.7 KiB |
|
@ -4,19 +4,27 @@
|
||||||
<th>Temperature</th>
|
<th>Temperature</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="legend-cell"><div style="width:20px;height:20px;background-color:red;"></div></td>
|
<td class="legend-cell"><div style="width:20px;height:20px;background-color:rgb(256, 176, 0);"></div></td>
|
||||||
<td class="legend-cell">700°C</td>
|
<td class="legend-cell">0°C</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="legend-cell"><div style="width:20px;height:20px;background-color:red;"></div></td>
|
<td class="legend-cell"><div style="width:20px;height:20px;background-color:rgb(168, 0, 0);"></div></td>
|
||||||
<td class="legend-cell">800°C</td>
|
<td class="legend-cell">800°C</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="legend-cell"><div style="width:20px;height:20px;background-color:red;"></div></td>
|
<td class="legend-cell"><div style="width:20px;height:20px;background-color:rgb(0, 96, 255);"></div></td>
|
||||||
<td class="legend-cell">900°C</td>
|
<td class="legend-cell">900°C</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="legend-cell"><div style="width:20px;height:20px;background-color:red;"></div></td>
|
<td class="legend-cell"><div style="width:20px;height:20px;background-color:rgb(106, 255, 150);"></div></td>
|
||||||
|
<td class="legend-cell">1000°C</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="legend-cell"><div style="width:20px;height:20px;background-color:rgb(255, 136, 0);"></div></td>
|
||||||
|
<td class="legend-cell">1000°C</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="legend-cell"><div style="width:20px;height:20px;background-color:rgb(128, 0, 0);"></div></td>
|
||||||
<td class="legend-cell">1000°C</td>
|
<td class="legend-cell">1000°C</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -12,8 +12,8 @@ f_stop = 2.4
|
||||||
ISO = 64 # basically brightness
|
ISO = 64 # basically brightness
|
||||||
|
|
||||||
# pyrometry config
|
# pyrometry config
|
||||||
MAX_GR_RATIO = 1200
|
MAX_TEMP = 1200
|
||||||
MIN_GR_RATIO = 0
|
MIN_TEMP = 60
|
||||||
# original range from paper
|
# original range from paper
|
||||||
# MAX_GR_RATIO = 1200
|
# MAX_GR_RATIO = 1200
|
||||||
# MIN_GR_RATIO = 600
|
# MIN_GR_RATIO = 600
|
||||||
|
@ -27,10 +27,17 @@ y2 = -1
|
||||||
# post-processing
|
# post-processing
|
||||||
smoothing_radius = 2
|
smoothing_radius = 2
|
||||||
|
|
||||||
|
# temperature key generation
|
||||||
|
key_entries = 6
|
||||||
|
|
||||||
|
|
||||||
@jit(nopython=True)
|
@jit(nopython=True)
|
||||||
def rg_ratio_normalize(imgarr):
|
def rg_ratio_normalize(imgarr):
|
||||||
tmin = MAX_GR_RATIO
|
# set max & min to most extreme values,
|
||||||
|
# work up & down respectively from there
|
||||||
|
tmin = MAX_TEMP
|
||||||
tmax = 0
|
tmax = 0
|
||||||
|
|
||||||
imgnew = imgarr
|
imgnew = imgarr
|
||||||
for i in range(len(imgarr)):
|
for i in range(len(imgarr)):
|
||||||
for j in range(len(imgarr[i])):
|
for j in range(len(imgarr[i])):
|
||||||
|
@ -42,7 +49,7 @@ def rg_ratio_normalize(imgarr):
|
||||||
temp_C = pyrometry_calibration_formula(g_norm, r_norm)
|
temp_C = pyrometry_calibration_formula(g_norm, r_norm)
|
||||||
|
|
||||||
# remove pixels outside calibration range
|
# remove pixels outside calibration range
|
||||||
if MAX_GR_RATIO != None and temp_C > MAX_GR_RATIO or MIN_GR_RATIO != None and temp_C < MIN_GR_RATIO:
|
if MAX_TEMP != None and temp_C > MAX_TEMP or MIN_TEMP != None and temp_C < MIN_TEMP:
|
||||||
temp_C = 0
|
temp_C = 0
|
||||||
|
|
||||||
# update min & max
|
# update min & max
|
||||||
|
@ -96,12 +103,39 @@ print(f"max: {tmax}°C")
|
||||||
k = []
|
k = []
|
||||||
for i in range(smoothing_radius):
|
for i in range(smoothing_radius):
|
||||||
k.append([1/(smoothing_radius**2) for i in range(smoothing_radius)])
|
k.append([1/(smoothing_radius**2) for i in range(smoothing_radius)])
|
||||||
# for j in range(smoothing_radius):
|
|
||||||
kernel = np.array(k)
|
kernel = np.array(k)
|
||||||
|
|
||||||
img = cv.filter2D(src=img, ddepth=-1, kernel=kernel)
|
img = cv.filter2D(src=img, ddepth=-1, kernel=kernel)
|
||||||
|
|
||||||
# apply jet color map
|
# write colormapped image
|
||||||
img = cv.applyColorMap(img, cv.COLORMAP_JET)
|
img_jet = cv.applyColorMap(img, cv.COLORMAP_JET)
|
||||||
|
cv.imwrite(f'{file_name}-cropped-transformed-ratio.{file_ext}', img_jet)
|
||||||
|
|
||||||
cv.imwrite(f'{file_name}-cropped-transformed-ratio.{file_ext}', img)
|
# --- Generate temperature key ---
|
||||||
|
|
||||||
|
# adjust max & min temps to be the same as the image
|
||||||
|
# tmin_adj = tmin / (smoothing_radius ** 2)
|
||||||
|
# tmax_adj = tmax / (smoothing_radius ** 2)
|
||||||
|
# Generate 6-step key
|
||||||
|
step = (tmax - tmin) / (key_entries-1)
|
||||||
|
temps = []
|
||||||
|
key_img_arr = [[]]
|
||||||
|
for i in range(key_entries):
|
||||||
|
res_temp = tmin + (i * step)
|
||||||
|
res_color = (tmax - (i * step)) / MAX_TEMP * 255
|
||||||
|
temps.append(res_temp)
|
||||||
|
key_img_arr[0].append([res_color, res_color, res_color])
|
||||||
|
|
||||||
|
key_img = np.array(key_img_arr).astype(np.uint8)
|
||||||
|
key_img_jet = cv.applyColorMap(key_img, cv.COLORMAP_JET)
|
||||||
|
# cv.imwrite(f'{file_name}-key.{file_ext}', key_img_jet)
|
||||||
|
|
||||||
|
tempkey = {}
|
||||||
|
for i in range(len(temps)):
|
||||||
|
c = key_img_jet[0][i]
|
||||||
|
tempkey[temps[i]] = f"rgb({c[0]}, {c[1]}, {c[2]})"
|
||||||
|
|
||||||
|
# with open(f"{file_name}-tempkey.json", "w+") as file_out:
|
||||||
|
# json.dump(tempkey, file_out)
|
||||||
|
|
||||||
|
print(json.dumps(tempkey, indent=4))
|
||||||
|
|
Loading…
Reference in New Issue