If you want to do some image processing too (like card detection), OpenCV makes sense.
I don’t know how it handles SDI input/output, but it can be interfaced to other SDKs, something like this (pseudocode):
int w = sdi.getWidth();
int h = sdi.getHeight();
char* buffer = sdi.capture();
Mat image(w,h,CV_8UC3,buffer); //transform the input buffer to OpenCV Mat
//process the image
Mat result; //copy your result here
char *output = new char[w*h*3];
First develop your code for static images and time it. If it’s too slow (takes more than 0.03s/image - this will be probably the case for 4K video), you’ll have to optimize it. The best way to gain speed is to go from CPU to GPU. Fortunately most OpenCV functions have CUDA implementations.