
Hi Holger I'd suggest that we create a new sub-module for the purpose of acquisition, and propagate it with all the necessary tools. The gui can be a stand-alone script outside the library (we may install it with the library as an executable, but it won't be importable under, say, scikits.image.gui). By separating the script from the library, we also stand a better chance of developing an easily re-usable API in the library itself. In the back of my head, this is where I thought the plugin framework could slot in handy (this is just a suggestion): Re-usable components from the GUI may be factored into a plugin, so that others may also make use of them. For example, the 'opengl' plugin may provide 'imshow', that is based on your ImageDisplayWin. Here follows a fictional code snippet: User: import scikits.image.io as io io.use_plugin('opengl') ic = io.ImageCollection([img1, img2]) io.imshow(ic) # imshow based on StillImageDisplay Gui script: import scikits.image.io.plugins.opengl as opengl ld = opengl.LiveImageDisplay() ld.do_stuff() etc. The aim is to maximise code re-use and to break up code into units that can be tested more easily. We're all still getting to know the lay of the land here, but as soon as we start coding, I'm sure the use cases will become more clear. Regards Stéfan