OpenCV breaks OpenGL compute shaders

I’m working on a project that requires the use of a live usb webcam stream and openGL. Currently if I test my program with static images using .png files with stb_image it works perfectly. Now when I use openCV, specifically when I use a cv::VideoCapture it seems to break my code. I can still display content with vertex and fragment shaders (I can send the video stream to a teximage2D and draw to a full screen quad) but I have a 3 compute shaders passes that no longer do anything.

Without OpenCV cv::VideoCapture I can pass in buffers and textures to the compute shaders and read/write. With the cv::VideoCapture, all of my compute shaders just return buffers full of 0. Any logic I have in the compute shaders seems to be disregarded.

I have a suspicion that because OpenCV has a cv::imShow function (although I am not using it ), it may be creating a OpenGL context which is causing problems with my OpenGL context.

I may not be able to provide a ton of code as the project is closed source but I am curious if anyone else has experienced this. Due the the it being closed source, I don’t think can not use ffmpeg in the production product. I’ve thought of using gstreamer or something similar but the ease of use of OpenCV for loading a usb webcam stream is appealing.

a general outline of my app:

display function{
    usb webcam stream into a cv::Mat
    cv::Mat into teximage2d
    compute shaders
    vertex/frag shader for full screen quad rendering and color adjustment
}

I’ve also tried to run the webcam capture on a separate thread but it didn’t change anything