как изменить этот код 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, библиотека была скачена с репозитория