I would like to study the source codes of openCV and reimplement them by
the boost generic image library, I hope the algorithms developed by GIL
could be integrated with Qt seamlessly.

There are many libraries of image processing and I don't need to implement
them again if I only want to develop some app, I would like to do this because
I want to learn something from surveying the source codes of openCV(looks like
this is a well design library) and the generic image library.

I haven't studied GIL yet, anybody who studied GIL could give me some advices?
Thanks a lot.

There have been some attempts at combining GIL and OpenCV, and two distinct projects on the GIL website are about the development of such an extension, see here. I wouldn't exactly qualify OpenCV as a well designed library (much less than GIL), but it certainly is very feature-rich. The OpenCV code itself is pretty messy, the docs are a sparse and unclear, and there are some weird decisions entrenched in the design, not to mention that there are multiple incarnation of OpenCV and they are all mixed together for backward compatibility (the latest incarnation tries to make more use of templates and generic programming techniques). So, it is somewhat of a tangled web, at least, that's the impression I got the last time that I looked through the OpenCV library and used it for some stuff, but the things that it can do and the algorithms available in it are pretty awesome. This is yet another installment of the everyday dilemma between a well-designed, generic but feature-deprived library, and a feature-rich but messy library. But if people could use GIL and still get access to the algorithms of OpenCV, it might be an incentive to turn their algorithm-development efforts to GIL, given its superior design.

Integration to Qt would mostly involve creating a new widget to display GIL images, and that's not very difficult. A while back I needed to display some images loaded with FreeImage (a basic image-loading library) on a Qt widget and it was a piece of cake. It wouldn't be much harder to make a real widget for displaying a GIL image. If you are talking about anything more than simply displaying the image, then it depends greatly on what you want to do.

Thank you very much, I will survey GIL from now, hope someday I could contribute some of
my efforts onto the website(if my codes are good enough to be accepted).

This is yet another installment of the everyday dilemma between a well-designed, generic but feature-deprived library, and a feature-rich but messy librar

It is reasonable, good codes like STL are valuable but it is very expensive
Besides, there are only a few of people who have the ability to develop this kind
of library(I would be very happy if I have that kind of skills) and maintain
it.What your boss want is "money", as long as the codes work, no one care about
it is well design or poor design.

I believe that it is too hard to ask most of the commercial companies to develop
good codes, but they could develop something "just work", "high efficiency" yet
extremely messy.No comments, inconsistent interfaces, different naming rules,
anti patterns(maybe a good solution in other languages, but sometimes your boss may ask
you to study a brand new language and hand out the project on next week,
I believe that how to design a good program and how to design a good program by specific
are not totally the same, each of them have different philosophy and abstraction mechanism.
But if programmers are running out of time, they have no choice but to treat apple as orange
even it is apple) and so on.