Why not stop the thread first and then close the camera?
Apart from that try to avoid using terminate(). Instead raise some flag in the thread (so that your while(1) loop becomes "while(!finish)") and call QThread::wait() afterwards (in the main thread) to pause until the worker thread exits. You shouldn't be experiencing those weird effects then.
Bookmarks