Skip to content

Commit 6b07980

Browse files
dianichjmvdbeek
andauthored
Fix TypeError when getOverlay() returns None with no particles (bgruening#1886)
* Fix TypeError when getOverlay() returns None with no particles * Bump VERSION_SUFFIX to 1 * Fix confocal-series-first-channel.tif typo in test data * Fix conditional parameter values in test cases * Fix expected test data for no-particles-match test case The new size=100000-Infinity test on blobs.gif matches zero particles, so the results table is empty. It incorrectly reused analyze_particles_nothing.tabular, which is shared by two other tests (show=Nothing and Overlay_Masks) that DO match all 63 blobs. Instead of breaking those, assert the results output has 0 lines. Also add the trailing newline to analyze_particles_rois_empty.tabular to match the header written by the jython script (which ends with \n). --------- Co-authored-by: mvdbeek <m.vandenbeek@gmail.com>
1 parent dd275a3 commit 6b07980

10 files changed

Lines changed: 69 additions & 26 deletions

tools/image_processing/imagej2/imagej2_adjust_threshold_binary.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ $method_cond.threshold_max
126126
<output name="output" file="blobs_threshold_0-8.gif" compare="image_diff" metric="iou"/>
127127
</test>
128128
<test>
129-
<param name="input" value="confocal-series-first-channel.tif"/>
129+
<param name="input" value="confocal-series-first-channel.tiff"/>
130130
<conditional name="method_cond">
131131
<param name="method" value="Default"/>
132132
<param name="black_background" value="yes"/>

tools/image_processing/imagej2/imagej2_analyze_particles_binary.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,18 @@ $circularity_max
138138
<output name="results" file="confocal_analyze_particles.tabular"/>
139139
<output name="rois" file="confocal_analyze_particles_rois.tabular"/>
140140
</test>
141+
<test expect_num_outputs="2">
142+
<param name="input" value="blobs.gif"/>
143+
<param name="size" value="100000-Infinity"/>
144+
<param name="show" value="Nothing"/>
145+
<param name="export_rois" value="true"/>
146+
<output name="results">
147+
<assert_contents>
148+
<has_n_lines n="0"/>
149+
</assert_contents>
150+
</output>
151+
<output name="rois" file="analyze_particles_rois_empty.tabular"/>
152+
</test>
141153
</tests>
142154
<help>
143155
.. class:: warningmark

tools/image_processing/imagej2/imagej2_analyze_particles_binary_jython_script.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
options2 = list(options)
6161
options2.append("show=Overlay")
6262
IJ.run(input_image_plus_copy, "Analyze Particles...", " ".join(options2))
63-
ov = input_image_plus_copy.getOverlay()
63+
ov = input_image_plus_copy.getOverlay() or []
6464
with open(roi_coordinate_file, 'w') as fo:
6565
fo.write("shape\tpoints\tlabel\tt\tz\n")
6666
for i, roi in enumerate(ov):

tools/image_processing/imagej2/imagej2_bunwarpj_align.xml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,9 @@ $consistency_weight
215215
<!-- Align two images without landmarks or mask, but saving transformation matrices -->
216216
<expand macro="test_target_source_images"/>
217217
<param name="max_subsamp_fact" value="1"/>
218-
<param name="advanced_options" value="save_transformation"/>
218+
<conditional name="advanced_options_cond">
219+
<param name="advanced_options" value="save_transformation"/>
220+
</conditional>
219221
<output name="source_out" file="registered_source1_forced1cpu.png" compare="image_diff"/>
220222
<output name="target_out" file="registered_target1_forced1cpu.png" compare="image_diff"/>
221223
<output name="source_trans_out" file="source_elastic_transformation_out.txt" compare="contains"/>
@@ -224,9 +226,11 @@ $consistency_weight
224226
<test expect_num_outputs="2">
225227
<!-- Align two images without landmarks but with mask, not saving transformation matrices -->
226228
<expand macro="test_target_source_images"/>
227-
<param name="align_with_mask" value="yes"/>
228-
<param name="target_mask" value="mask_white.png"/>
229-
<param name="source_mask" value="mask_ramp.gif"/>
229+
<conditional name="align_with_mask_cond">
230+
<param name="align_with_mask" value="yes"/>
231+
<param name="target_mask" value="mask_white.png"/>
232+
<param name="source_mask" value="mask_ramp.gif"/>
233+
</conditional>
230234
<param name="max_subsamp_fact" value="1"/>
231235
<output name="source_out" file="registered_source2_forced1cpu.png" compare="image_diff"/>
232236
<output name="target_out" file="registered_target2_forced1cpu.png" compare="image_diff"/>

tools/image_processing/imagej2/imagej2_enhance_contrast.xml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,18 +58,26 @@ ImageJ --ij2 --headless --debug
5858
<tests>
5959
<test>
6060
<param name="input" value="blobs.gif"/>
61-
<param name="equalize_histogram" value="yes"/>
61+
<conditional name="equalize_histogram_cond">
62+
<param name="equalize_histogram" value="yes"/>
63+
</conditional>
6264
<output name="output" file="blobs_equalize.gif" compare="image_diff"/>
6365
</test>
6466
<test>
6567
<param name="input" value="blobs.gif"/>
66-
<param name="saturated_pixels" value="6.2"/>
68+
<conditional name="equalize_histogram_cond">
69+
<param name="equalize_histogram" value="no"/>
70+
<param name="saturated_pixels" value="6.2"/>
71+
</conditional>
6772
<output name="output" file="blobs_saturate.gif" compare="image_diff"/>
6873
</test>
6974
<test>
7075
<param name="input" value="blobs.gif"/>
71-
<param name="saturated_pixels" value="13.0"/>
72-
<param name="normalize" value="yes"/>
76+
<conditional name="equalize_histogram_cond">
77+
<param name="equalize_histogram" value="no"/>
78+
<param name="saturated_pixels" value="13.0"/>
79+
<param name="normalize" value="yes"/>
80+
</conditional>
7381
<output name="output" file="blobs_normalize.gif" compare="image_diff"/>
7482
</test>
7583
</tests>

tools/image_processing/imagej2/imagej2_macros.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<macros>
22
<token name="@TOOL_VERSION@">20240614</token>
3-
<token name="@VERSION_SUFFIX@">0</token>
3+
<token name="@VERSION_SUFFIX@">1</token>
44
<xml name="fiji_requirements">
55
<requirements>
66
<requirement type="package" version="@TOOL_VERSION@">fiji</requirement>

tools/image_processing/imagej2/imagej2_math.xml

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -119,28 +119,38 @@ ImageJ --ij2 --headless --debug
119119
<tests>
120120
<test>
121121
<param name="input" value="blobs.gif"/>
122-
<param name="operation" value="Multiply"/>
122+
<conditional name="operation_cond">
123+
<param name="operation" value="Multiply"/>
124+
</conditional>
123125
<output name="output" file="blobs_multiply.gif" compare="image_diff"/>
124126
</test>
125127
<test>
126128
<param name="input" value="blobs.gif"/>
127-
<param name="operation" value="Min"/>
128-
<param name="float_constant" value="255"/>
129+
<conditional name="operation_cond">
130+
<param name="operation" value="Min"/>
131+
<param name="float_constant" value="255"/>
132+
</conditional>
129133
<output name="output" file="blobs_min.gif" compare="image_diff"/>
130134
</test>
131135
<test>
132136
<param name="input" value="blobs.gif"/>
133-
<param name="operation" value="Log"/>
137+
<conditional name="operation_cond">
138+
<param name="operation" value="Log"/>
139+
</conditional>
134140
<output name="output" file="blobs_log.gif" compare="image_diff"/>
135141
</test>
136142
<test>
137143
<param name="input" value="blobs.gif"/>
138-
<param name="operation" value="Square"/>
144+
<conditional name="operation_cond">
145+
<param name="operation" value="Square"/>
146+
</conditional>
139147
<output name="output" file="blobs_square.gif" compare="image_diff"/>
140148
</test>
141149
<test>
142150
<param name="input" value="blobs.gif"/>
143-
<param name="operation" value="Macro"/>
151+
<conditional name="operation_cond">
152+
<param name="operation" value="Macro"/>
153+
</conditional>
144154
<output name="output" file="blobs_macro.gif" compare="image_diff"/>
145155
</test>
146156
</tests>

tools/image_processing/imagej2/imagej2_noise.xml

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,27 +76,35 @@ ImageJ --ij2 --headless --debug
7676
<tests>
7777
<test>
7878
<param name="input" value="blobs.gif"/>
79-
<param name="noise" value="add_specified_noise"/>
80-
<param name="standard_deviation" value="5" />
79+
<conditional name="noise_cond">
80+
<param name="noise" value="add_specified_noise"/>
81+
<param name="standard_deviation" value="5"/>
82+
</conditional>
8183
<!-- Cannot use image_diff as the noise is random -->
8284
<output name="output" file="add_specified_noise.gif" compare="sim_size"/>
8385
</test>
8486
<test>
8587
<param name="input" value="blobs.gif"/>
86-
<param name="noise" value="despeckle"/>
88+
<conditional name="noise_cond">
89+
<param name="noise" value="despeckle"/>
90+
</conditional>
8791
<output name="output" file="despeckle.gif" compare="image_diff"/>
8892
</test>
8993
<test>
9094
<param name="input" value="blobs.gif"/>
91-
<param name="noise" value="remove_outliers"/>
92-
<param name="radius" value="10.0"/>
93-
<param name="threshold" value="1"/>
94-
<param name="which_outliers" value="Bright"/>
95+
<conditional name="noise_cond">
96+
<param name="noise" value="remove_outliers"/>
97+
<param name="radius" value="10.0"/>
98+
<param name="threshold" value="1"/>
99+
<param name="which_outliers" value="Bright"/>
100+
</conditional>
95101
<output name="output" file="remove_outliers.gif" compare="image_diff"/>
96102
</test>
97103
<test expect_failure="true">
98104
<param name="input" value="blobs.gif"/>
99-
<param name="noise" value="remove_nans"/>
105+
<conditional name="noise_cond">
106+
<param name="noise" value="remove_nans"/>
107+
</conditional>
100108
</test>
101109
</tests>
102110
<help>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
shape points label t z

tools/image_processing/imagej2/test-data/regenerate_outputs.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ImageJ --ij2 --headless --debug --jython 'tools/image_processing/imagej2/imagej2
1313
# Test 5
1414
ImageJ --ij2 --headless --debug --jython 'tools/image_processing/imagej2/imagej2_adjust_threshold_binary_jython_script.py' 'tools/image_processing/imagej2/test-data/blobs.gif' 0.0 8.0 'Manual' 'bw' 'no' 'tools/image_processing/imagej2/test-data/blobs_threshold_0-8.gif' 'gif'
1515
# Test 6
16-
ImageJ --ij2 --headless --debug --jython 'tools/image_processing/imagej2/imagej2_adjust_threshold_binary_jython_script.py' 'tools/image_processing/imagej2/test-data/confocal-series-first-channel.tif' 0.0 255.0 'Default' 'bw' 'yes' 'tools/image_processing/imagej2/test-data/confocal-series-first-channel_threshold_default.tiff' 'tiff'
16+
ImageJ --ij2 --headless --debug --jython 'tools/image_processing/imagej2/imagej2_adjust_threshold_binary_jython_script.py' 'tools/image_processing/imagej2/test-data/confocal-series-first-channel.tiff' 0.0 255.0 'Default' 'bw' 'yes' 'tools/image_processing/imagej2/test-data/confocal-series-first-channel_threshold_default.tiff' 'tiff'
1717

1818

1919
# Analyze particles

0 commit comments

Comments
 (0)