Thanks to Klen, Daniil and gnuton, I got the tutorial to combine Gstreamer and OpenCV (and OpenGL as well). I finished one program in which I used Gstreamer to get the camera working, transferred the data from CameraN900 : buffer to an IplImage and did some image processing to track the hand.
I would like to upload my app cause I still met with several problems:
1, Based on Klen's program, I added the OpenCV functions mainly in glwidget.cpp. I don't know whether this is a proper way to get the camera buffer data from pipeline to IplImage. Actually, I used the function qImage2IplImage(const QImage& qImage);
2, I managed to do the image processing frame by frame, but I failed to apply the result, (for example, I drawed some lines on the contour of hand) to the original QImage and playback the capture frame with drawings. As I know, Klen used OpenGL to draw fps information immediatly to the pipeline data. And I would like to draw on it with opencv drawing functions. As a result, I created cvNamedWindow and show the processing result in another window, which obviously reduced the robustness of the whole app;
3, While the app worked on my N900, it was so slow.The fts was reduced to 2~3 fps when applying the image processing. I think there are many reasons for this, while I know something is killing the phone memory and at the meantime, the OpenCv functions are too expensive for N900.
Plz take a look at this app and try it on your N900 if you like. Any suggestions to improve that will be welcome.
Thx. Here is the link for download.