It would be nice if you made the viewer I plugin for the io framework. Plugins are *really* simple to create. Just checkout how I did the qt plugin for io.imshow(). If you follow the plugin architecture, the viewer will by default be compatible from an interactive prompt. Cheers, Chris On Sun, Oct 31, 2010 at 10:46 AM, Maël Primet <mael.primet@gmail.com> wrote:
Hello Emmanuelle,
thanks for your input
I had a look at the new filters. I added some documentation to
the existing docstrings (http://github.com/emmanuelle/scikits.image/commits/denoise), could you please check that I didn't write anything wrong? I'm planning to add tests for these denoising functions in the next few days. After the code is fully tested, I think it will be time to start to start a new branch, cherry-pick the commits corresponding to the denoising algorithms only, rebase... and ask for a merge. It's important to make sure that your work can be re-used into the main branch. As you seem to have plenty of new stuff (the viewer for example) to keep you busy, I can take care of this refactoring if you like.
Thanks this looks very good
Concerning the tutorial, I couldn't make the demos run. I understood that Mathjax had to be installed, but the installation instructions of Mathjax did not appear very clear to me, so I did not really know where I should put it. So I guess I will also wait for some documentation from your side. The idea of an interactive tutorial that explains the algorithms and let the user execute some demo is really cool, however! Do you plan to have the tutorial on a single web server, or that users run it on their own computer? In the first case, you may use any kind of top-notch not-so-standard software such as Mathjax, but if every user has to install it, it will be more of a problem... In any case, I'm eager to know more about this tutorial project!
Yes, sorry for the lack of documentation, I wanted it to go this way:
we distribute the webbrowser with required fonts and JS libraries that might be used by most of the tutorials, and they might be loaded at run-time by the browser, so distributing new tutorials won't require also distributing (heavy!) libraries now, you don't need MathJax to see how the thing work, but if you want to use it, simply uncompress it as image_denoising_tutorial/js/MathJax to compile, you need to run the Makefile in lib/, then call ipaper.py with the directory "image_denoising_tutorial" as argument, ie. ./ipaper.py /path/to/image_denoising_tutorial/
Finally, for the viewer, I had to make a small addition to the setup.py to install the package (see my comment on github, I needed to specify the location of numpy headers). I was glad to see that you were able to code some of the features that Lionel and you really need, such as being able to flip between two images, or representing the level lines of an image. However, I know almost nothing about visualization, so I'm afraid I don't have very constructive comments about the viewer. Maybe just one remark: as a lot of scientists work interactively within the Python shell, e.g. Ipython, it is important that calls to the viewer are not blocking, i.e., that the user gets the prompt back.
I included it,
for the comments regarding this viewer: I think my zooming functions are slightly more suited here: there are more zooms, it's faster and IMO more convenient to use, and most of all, the zooming code is MUCH easier to access (both in term of understandability and ease of modification if we need to update it) than that of ndimage, so I'd recommend using it for the viewer.
I'd like to add some GUI rather than having only keyboard shortcuts for the viewer, but I created it in a modular way, such that we could build a very simple viewer with only keyboard accelerators, that would be nice when debugging an algorithm, or quickly looking at the result of an algorithm, and also embedd it in a more full-fledged application if we need a real image viewer.
I guess it shouldn't be too hard to return the input to the user