

We are talking about > 40000 lines of C++ template code!

The immediate downside, of course, is long compile times. The header-only part is very cool and handy, since you just have to #include and you are done. The first one we tried was CImg, which is a header-only (!) C++ library for image processing. Most of the time the image data is either gray values (8, or 16 bit), or RGB(A).Īs we are generally not falling victim to the NIH syndrom we use open source image processing librarys. The starting point there is always some image data in memory that has been acquired from the camera. Typically, this entails flipping the image horizontally and/or vertically, rotating the image around some multiple of 90 degrees, and calculcating some statistics like standard deviation. One standard requirement for us is to do some basic image processing and analytics. Our task is then to write some glue software that makes the camera available and controllable for the scientists. A good part of these are 2D detectors and scientific CCD cameras, which have all sorts of interfaces like ethernet, firewire and frame grabber cards. For one of our customers in the scientific domain we do a lot of integration of pieces of hardware into the existing measurement- and control network.
