как изменить этот код opencv так, чтоб он работал на си, а не только на с++?

Как переделать этот код так, чтоб он работал на си? Сейчас он работает только на с++. Он берет видепоток с веб камеры и преобразует каждый кадр сначала в jpg, а потом в поток байт. При поптыки запустить код на си, компилятор выдает ошибки внутр иподключенные библиотек, хотя ооп интерфейс здесь вроде не используется(за исключением nullptr). КОнкретно, вот такие ошибки при подключении библиотек /usr/include/opencv2/imgproc/imgproc_c.h:1041: ошибка: undefined reference to `cvRound'

#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>


    int main()
    {


        CvCapture* capture = cvCreateCameraCapture(CV_CAP_ANY);


        IplImage* frame= nullptr;

       // cvNamedWindow("capture", CV_WINDOW_AUTOSIZE);

        while (true)
        {
        frame = cvQueryFrame( capture );
        auto temp = cvEncodeImage(".jpg", frame);
        uchar *a = temp->data.ptr;
        int fd = open("/home/anton/frame.jpg", O_WRONLY);
        write(fd, a, temp->width);
        }

        cvReleaseCapture( &capture );
        return 0;
    }

Код работает в Linux, библиотека была скачена с репозитория


Ответы (0 шт):