tjlane / pypad

Intuitive, high-level interface to the CSPAD
Other
2 stars 1 forks source link

error message if I right-click on 2D pattern #16

Closed sellberg closed 11 years ago

sellberg commented 11 years ago

We should probably make sure there are no errors if one clicks on the image and nothing happens... It seems like we should add an ignore attribute.

Exception in Tkinter callback Traceback (most recent call last): File "/reg/g/psdm/sw/external/python/2.7.2/x86_64-rhel5-gcc41-opt/lib/python2.7/lib-tk/Tkinter.py", line 1410, in call return self.func(_args) File "/reg/g/psdm/sw/releases/ana-current/arch/x86_64-rhel5-gcc41-opt/python/matplotlib/backends/backend_tkagg.py", line 301, in button_release_event FigureCanvasBase.button_release_event(self, x, y, num, guiEvent=event) File "/reg/g/psdm/sw/releases/ana-current/arch/x86_64-rhel5-gcc41-opt/python/matplotlib/backend_bases.py", line 1655, in button_release_event self.callbacks.process(s, event) File "/reg/g/psdm/sw/releases/ana-current/arch/x86_64-rhel5-gcc41-opt/python/matplotlib/cbook.py", line 262, in process proxy(_args, *_kwargs) File "/reg/g/psdm/sw/releases/ana-current/arch/x86_64-rhel5-gcc41-opt/python/matplotlib/cbook.py", line 192, in call return mtd(_args, **kwargs) File "build/bdist.linux-x86_64/egg/pypad/plot.py", line 150, in _release if self.ignore(event): AttributeError: 'ToggleButton' object has no attribute 'ignore'

sellberg commented 11 years ago

This bug actually broke the script, after I obtain this error message, I keep on getting it even when I click on things that have available attributes, such as the threshold and dilation sliders...

sellberg commented 11 years ago

this bug is even more severe when I try it on my local laptop (python 2.6.6, matplotlib 1.0.0), and the graphics aren't showed at all:

[pypad(master):543 16:50:08] genfilter examples/gold-minus490mm.h5

  ---  INTERACTIVE PARAMETER OPTIMIZATION ENVIRONMENT  ---    

Welcome to autogeom's interactive image pre-processing environment. Adjust the sliders to optimize your image -- the goal is to get one or more sharp powder rings on the image to show up above the noise.

Instructions: -- Right Click: (Left Panel) Sets the guess of the center of the image. (Right Panel) Set a 'peak limit', the algorithm only optimizes peaks between these limits. You can set many such regions. -- Threshold: Sets a binary intensity threshold. -- Median: A median filter. You can thinks of this as a voting scheme, where a pixel gets set to be the same as a consensus of those around it. This parameter sets the size of that consensus window. -- Minimum: A minimum filter. If any pixel in this window size is zero, all pixels in the window become zero.

Once you are done, the final parameters you have in your window will be written to disk in a file that can be interpreted by the 'optgeom' script, which will give you a final, optimized geometry.

PS. The rendering can be a bit slow... Please be patient!

Loading: examples/gold-minus490mm.h5

Parsing: quad 0 WARNING: Metrology quality control failed for 2x1: 1 --> s/f vectors are not orthogonal Val: -0.000013 // tol: 0.000010

Parsing: quad 1

Parsing: quad 2 WARNING: Metrology quality control failed for 2x1: 0 --> s/f vectors are not orthogonal Val: 0.000101 // tol: 0.000010

Parsing: quad 3 WARNING: Metrology quality control failed for 2x1: 3 --> s/f vectors are not orthogonal Val: -0.000010 // tol: 0.000010 Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/Current/bin/genfilter", line 5, in pkg_resources.run_script('pypad==0.0.1', 'genfilter') File "/Library/Frameworks/Python.framework/Versions/6.3/lib/python2.6/site-packages/pkg_resources.py", line 467, in run_script self.require(requires)[0].run_script(script_name, ns) File "/Library/Frameworks/Python.framework/Versions/6.3/lib/python2.6/site-packages/pkg_resources.py", line 1200, in run_script execfile(script_filename, namespace, namespace) File "/Library/Frameworks/Python.framework/Versions/6.3/lib/python2.6/site-packages/pypad-0.0.1-py2.6.egg/EGG-INFO/scripts/genfilter", line 335, in main() File "/Library/Frameworks/Python.framework/Versions/6.3/lib/python2.6/site-packages/pypad-0.0.1-py2.6.egg/EGG-INFO/scripts/genfilter", line 327, in main intflt = InteractiveFilter(image, csp) File "/Library/Frameworks/Python.framework/Versions/6.3/lib/python2.6/site-packages/pypad-0.0.1-py2.6.egg/EGG-INFO/scripts/genfilter", line 145, in init self.filter_button = ToggleButton(ax_sobel, 'Apply Filter', color=axcolor, hovercolor='0.975') File "/Library/Frameworks/Python.framework/Versions/6.3/lib/python2.6/site-packages/pypad-0.0.1-py2.6.egg/pypad/plot.py", line 126, in init super( ToggleButton, self ).init(ax, label, **kwargs) TypeError: super() argument 1 must be type, not classobj