I appreciate the thoughtful feedback. A number of issues have been expressed and I will clarify my position:
1) Quality – Certainly we want the public/core libraries to be bug-free and well-documented. At the same time, the body of code will be much larger and much more complex than anything currently in core. Of course, test cases will be mandatory but I doubt that the cleanliness and purity of the public code will ever reach the level exhibited in the core.
I am not so sure we need to enforce the two-site nomination rule since these libraries are intended to be of obvious universal application, such as segmentation and photogrammetry.
2) Core vs public – I think one of the key elements of success for vxl is the light-weight core with clearly-delineated and strictly-enforced dependencies into level 1 and level 2. The library structure that will be necessary for the public applications will be much more complex, with maybe five or six levels at times. I don’t think we want to entangle the pure and mature core with this complexity. From my view the “stagnation” that Amitha sees as a drawback in the current state of core is actually its great strength – stable, clean, simple.
3) Just a glimpse of what might be the nature of the public application libraries: Once one gets into segmentation the nature of supporting libraries becomes significantly more complex than currently exists in core. In the case of edge detection, there is a need to represent boundary chains and their connections. For example, two or more chains of step-edge discontinuities can intersect at a common vertex. Thus the endpoints of these chains must have a shared point structure. Similarly, for region segmentation, the adjacency of regions must be represented along with the boundary of the region. It is difficult to see how these needs can be met without a new geometry library that supports shared pointers to geometric structure. Thus the segmentation libraries are already at level four.
Other applications involving feature grouping would build on the segmentation libraries and require various basic spatial indexing classes, such as the Hough transform, k-d trees, and distance transforms. The grouping applications themselves would now be at level five!
Classical recognition and matching applications will no doubt drive the dependency complexity even further.
In summary, I don’t think we should disturb the beautiful and pure core, but establish a new public area that is by necessity more complex.
Professor of Engineering (Research)
Barus and Holley Bldg., Room 351