I do not understand why OpenCV doesn't work when we do not need to create OpenCV window using cvNamedWindow. Actually, I do not want to use OpenCV GUI window, I want to use third party GUI in order to display grabbed frame, So for this, i do not need to create OpenCV window. But When I do not create OpenCV window, my application gets stuck, nothing works, and when I do create OpenCV window using cvNamedWindow, everything works fine.
Any suggestion, whats the reason? how can I grab OpenCV frame without creating its GUI window?
I am using OpenCV 2.4.3 (cvQueryFrame), VS2010 c++, WindowsXP
Thanks.
you probably need to skip the waitKey() call, too ;)
(also, do yourself a favour, and skip the c-api. it's a real PITA and will go away soon)
That's because you are grabbing images at a faster rate than what the camera can ouput. You need to add a little delay to your while cycle. If your camera does 25FPS, you should add ~1/25 of a second or so.
Solved: The problem was this, actually, I was creating a third party GUI window inside of the pthread which was causing its infinite updating. When I created window outside of the pthread, it works fine.
procedure is this:
void Init()
{
createGUIwin(w, h);
init_pthread();
}
void init_pthread(void*)
{
//createGUIwin(w, h); // before I was creating GUIwin here
while(ON)
{
frame = getOCVframe();
UpdateGUIwin(frame);
key = cvWaitKey(10);
}
}
Thanks everyone. I appreciate your answers.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.