simulation
This commit is contained in:
@@ -407,3 +407,4 @@ CALIBRATION_AUTO_DURATION = 45.0
|
|||||||
CALIBRATION_AUTO_TIMEOUT = 2.5
|
CALIBRATION_AUTO_TIMEOUT = 2.5
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Executable
+56
@@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Génère 24 vidéos pour simuler le balayage d'un multi-puit de 6x24
|
||||||
|
# A1..A6, B1..B6, C1..C6, D1..D6
|
||||||
|
#
|
||||||
|
|
||||||
|
PATH="data"
|
||||||
|
default_width=1000 # px
|
||||||
|
default_height=1000 # px
|
||||||
|
default_diameter=16.0 # mm
|
||||||
|
|
||||||
|
declare -A arguments=(
|
||||||
|
# key count len width sec fps seed thigmotaxis bg-color arena-color arena-border shadow-color body-color body-dark body-light head-color
|
||||||
|
["F0"]="1 0.90 0.30 60 5 64 0.45 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5A7896 #3C5570 #8CA0B4 #46645F"
|
||||||
|
)
|
||||||
|
|
||||||
|
declare -A arguments2=(
|
||||||
|
# key count len width sec fps seed thigmotaxis bg-color arena-color arena-border shadow-color body-color body-dark body-light head-color
|
||||||
|
["D1"]="3 0.90 0.30 60 5 64 0.45 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5A7896 #3C5570 #8CA0B4 #46645F"
|
||||||
|
["D2"]="2 0.75 0.40 60 5 96 0.50 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5B7896 #3D5570 #8DA0B4 #47645F"
|
||||||
|
["D3"]="1 0.80 0.50 60 5 42 0.60 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["D4"]="1 0.85 0.40 60 5 28 0.70 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["D5"]="3 0.60 0.35 60 5 132 0.65 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["D6"]="2 0.65 0.35 60 5 256 0.85 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["C6"]="1 0.90 0.30 60 5 64 0.45 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5A7896 #3C5570 #8CA0B4 #46645F"
|
||||||
|
["C5"]="3 0.75 0.40 60 5 96 0.50 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5B7896 #3D5570 #8DA0B4 #47645F"
|
||||||
|
["C4"]="2 0.80 0.50 60 5 42 0.60 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["C3"]="1 0.85 0.40 60 5 28 0.70 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["C2"]="2 0.60 0.35 60 5 132 0.65 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["C1"]="3 0.65 0.35 60 5 256 0.85 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["B1"]="2 0.90 0.30 60 5 64 0.45 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5A7896 #3C5570 #8CA0B4 #46645F"
|
||||||
|
["B2"]="1 0.75 0.40 60 5 96 0.50 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5B7896 #3D5570 #8DA0B4 #47645F"
|
||||||
|
["B3"]="1 0.80 0.50 60 5 42 0.60 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["B4"]="3 0.85 0.40 60 5 28 0.70 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["B5"]="1 0.60 0.35 60 5 132 0.65 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["B6"]="2 0.65 0.35 60 5 256 0.85 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["A6"]="1 0.90 0.30 60 5 64 0.45 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5A7896 #3C5570 #8CA0B4 #46645F"
|
||||||
|
["A5"]="1 0.75 0.40 60 5 96 0.50 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5B7896 #3D5570 #8DA0B4 #47645F"
|
||||||
|
["A4"]="3 0.80 0.50 60 5 42 0.60 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["A3"]="1 0.85 0.40 60 5 28 0.70 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["A2"]="1 0.60 0.35 60 5 132 0.65 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
["A1"]="4 0.65 0.35 60 5 256 0.85 #D4DADC #BDBDF0 #B4AFA8 #BEBCB6 #5C7896 #3E5570 #8EA0B4 #48645F"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
for key in "${!arguments[@]}"; do
|
||||||
|
args="${arguments[$key]}"
|
||||||
|
read -r count length width duration fps seed thigmotaxis bg_color arena_color arena_border shadow_color body_color body_dark body_light head_color <<< "$args"
|
||||||
|
|
||||||
|
echo "==== Exécution de $PATH/$key.mp4"
|
||||||
|
|
||||||
|
./planarian_sim.py --output "$PATH/$key.mp4" --default_width "$default_width" --default_height "$default_height" --default_diameter "$default_diameter" \
|
||||||
|
--count "$count" --length "$length" --width "$width" --duration "$duration" --fps "$fps" --seed "$seed" --thigmotaxis "$thigmotaxis" \
|
||||||
|
--bg-color "$bg_color" --arena-color "$arena_color" --arena-border "$arena_border" --shadow-color "$shadow_color" \
|
||||||
|
--body-color "$body_color" --body-dark "$body_dark" --body-light "$body_light" --head-color "$head_color" --no-csv
|
||||||
|
done
|
||||||
Executable
+1341
File diff suppressed because it is too large
Load Diff
@@ -468,6 +468,10 @@ class ScannerProcess(Task):
|
|||||||
msg = self.manager.set_well_position()
|
msg = self.manager.set_well_position()
|
||||||
self._send(**msg)
|
self._send(**msg)
|
||||||
|
|
||||||
|
elif topic == 'track':
|
||||||
|
self.cam.use_tracking = value=="1"
|
||||||
|
self._send(state=topic, msg=f"Tracking: {self.cam.use_tracking}")
|
||||||
|
|
||||||
elif topic in ['min_area_px', 'max_area_ratio', 'max_planarians', 'merge_kernel_size', 'min_contour_dist_px']:
|
elif topic in ['min_area_px', 'max_area_ratio', 'max_planarians', 'merge_kernel_size', 'min_contour_dist_px']:
|
||||||
value = int(value) if topic in ['min_area_px', 'max_planarians', 'merge_kernel_size', 'min_contour_dist_px'] else float(value)
|
value = int(value) if topic in ['min_area_px', 'max_planarians', 'merge_kernel_size', 'min_contour_dist_px'] else float(value)
|
||||||
self.manager.tracker_config[topic] = value
|
self.manager.tracker_config[topic] = value
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ class ScannerManager {
|
|||||||
this.max_planarians = options.max_planarians;
|
this.max_planarians = options.max_planarians;
|
||||||
this.merge_kernel_size = options.merge_kernel_size;
|
this.merge_kernel_size = options.merge_kernel_size;
|
||||||
this.min_contour_dist_px = options.min_contour_dist_px;
|
this.min_contour_dist_px = options.min_contour_dist_px;
|
||||||
|
this.track = options.track;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,7 +85,7 @@ class ScannerManager {
|
|||||||
this.max_planarians.addEventListener('change', (e) => { this._send({ type: 'calibrate', topic: "max_planarians", value: e.target.value}); });
|
this.max_planarians.addEventListener('change', (e) => { this._send({ type: 'calibrate', topic: "max_planarians", value: e.target.value}); });
|
||||||
this.merge_kernel_size.addEventListener('change', (e) => { this._send({ type: 'calibrate', topic: "merge_kernel_size", value: e.target.value}); });
|
this.merge_kernel_size.addEventListener('change', (e) => { this._send({ type: 'calibrate', topic: "merge_kernel_size", value: e.target.value}); });
|
||||||
this.min_contour_dist_px.addEventListener('change', (e) => { this._send({ type: 'calibrate', topic: "min_contour_dist_px", value: e.target.value }); });
|
this.min_contour_dist_px.addEventListener('change', (e) => { this._send({ type: 'calibrate', topic: "min_contour_dist_px", value: e.target.value }); });
|
||||||
|
this.track.addEventListener('click', (e) => { this._send({ type: 'calibrate', topic: "track", value: e.target.value }); });
|
||||||
}
|
}
|
||||||
|
|
||||||
registerSocket(socket) {
|
registerSocket(socket) {
|
||||||
|
|||||||
@@ -150,7 +150,9 @@
|
|||||||
</div>
|
</div>
|
||||||
{% if conf.tracking %}
|
{% if conf.tracking %}
|
||||||
<div class="w3-row w3-row-padding w3-light-grey w3-margin-1 w3-round w3-round-large">
|
<div class="w3-row w3-row-padding w3-light-grey w3-margin-1 w3-round w3-round-large">
|
||||||
<div class="w3-col">{% trans 'Configuration du tracking' %}</div>
|
<div class="w3-col"><input id="_track" type="checkbox" value="0" onclick="if (this.checked){this.value='1';}else{ this.value='0';}">
|
||||||
|
{% trans 'Configuration du tracking' %}
|
||||||
|
</div>
|
||||||
<div class="w3-half">
|
<div class="w3-half">
|
||||||
<input id="_min_area_px" type="number" min="5" max="100" step="1" class="w3-round" value="{{ conf.min_area_px }}"
|
<input id="_min_area_px" type="number" min="5" max="100" step="1" class="w3-round" value="{{ conf.min_area_px }}"
|
||||||
title="{% trans 'surface minimale de contour pour être considéré valide (px carré)' %}"><br>{% trans 'Min contour' %}
|
title="{% trans 'surface minimale de contour pour être considéré valide (px carré)' %}"><br>{% trans 'Min contour' %}
|
||||||
@@ -257,7 +259,8 @@
|
|||||||
max_area_ratio : sId("_max_area_ratio"),
|
max_area_ratio : sId("_max_area_ratio"),
|
||||||
max_planarians : sId("_max_planarians"),
|
max_planarians : sId("_max_planarians"),
|
||||||
merge_kernel_size : sId("_merge_kernel_size"),
|
merge_kernel_size : sId("_merge_kernel_size"),
|
||||||
min_contour_dist_px : sId("_min_contour_dist_px")
|
min_contour_dist_px : sId("_min_contour_dist_px"),
|
||||||
|
track : sId("_track")
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/scanner/js/calibration.js"></script>
|
<script src="/static/scanner/js/calibration.js"></script>
|
||||||
|
|||||||
Reference in New Issue
Block a user