[SIP-devel] hello & some thoughts
Advanced image processing toolbox for Scilab on Unix/Linux/Mac OS
Status: Beta
Brought to you by:
ricardofabbri
From: Ricardo F. <ric...@us...> - 2010-09-19 12:05:59
|
Hi all, It has been a while, but I've always kept SIP in mind. I'd like to share with you some ideas motivating me towards this project. They should also be useful for SIP forks and other similar software: Developing SIP is not only towards generating a final useful toolbox; this development activity can fundamentally be seen as a *fun* way of playing with image processing and computer vision algorithms. I can argue that this Fun is so deep and far-reaching that it has power to revolutionize computer vision as a field - and to make it understandable, to make it more applicable, to popularize it, to teach it, and to develop new methods for it. Ok, that is all beautiful and good and abstract, and so here are some pragmatic ideas from this "Just for Fun"/Torvaldian way of thinking: It would be cool to have SIP be explicitly divided into two: 1) a core SIP which is built by default and should be as stable as possible. This has the universally useful image I/O functionality (imread, imwrite, imshow, imfinfo, ...), and perhaps other easy-to-support stuff. 2) an experimental SIP, which is all the rest of functionality. This should only be enabled by passing an explicit configure flag e.g. : ./configure --all_fancy_features The experimental component would take the Just for Fun philosophy to an extreme. More specifically, it would ruthlessly interface to as many external libs as desired (VXL, OpenCV, Leptonica, LTILib, AnImaL, and so on), without much concern about portability or ease of installation at first. As a developer, it is fun to write Scilab/scripted interfaces to these external libs as it helps you learn the algorithms and functionalities of these libs, and also helps you have this functionality easily available in a nice easy-to-use environment. You then see your work being used by those power users like adventure and use the "--fancy_features" functionality, and with time these can even make into 'core'. Note that even if Scilab itself has its own "quirks", that itself actually adds to the fun and can actually lead to different and innovative ways of exploring image processing. Writing Scilab interfaces to these libs or even scilab scripts for the SIP toolbox is also an awesome way not only to explore these algorithms, but also to document them. Each function you write for SIP is documented with a nice interactive example, and can also be part of a demo. That's the other thing, producing demos in Scilab are extremely easy and fun to do once the scripting interface has been built. And having demos just makes computer vision more fun. So out of these purely "just for fun" activities, I believe other good things come as a natural consequence. Naturally, a community starts being built around SIP due to the social culture of free software based on sharing. The computer vision field moves forward. Scilab itself gets better. Image processing courses get more fun to teach and participate. It all works well, as long as we don't start "pretending" SIP is a finished product to be pristinely packaged & delivered & supported, but just accepting that above this it is just another way of having fun with algorithms, computers, and vision. PS: This is not just talk.. I hope. I'm installing Scilab + SIP on Ubuntu Lucid & Mac OS X right now. Join the fun! Ricardo |