Is it possible to use glReadPixels to get the pixel data of the model created by OpenGL without showing it in a window? I want to get the pixel data and load to OpenCV then show them in the window created by OpenCV only.

Have a look at the EXT_framebuffer_object extension. It allows you to render to offscreen buffers and textures.