我正在使用Darknet从实时视频流中检测对象,并希望将每个帧传递给dlib以跟踪该对象,但是我很困惑如何将帧从Darknet的demo.c传递给dlib并进行跟踪。
我需要使用c c++连接器吗?如果是,如何?任何解释或线索都会有所帮助。
谢谢...
我要传递IPL图像并要跟踪对象的Dlib文件。
#include <dlib/image_processing.h>
#include <dlib/gui_widgets.h>
#include <dlib/image_io.h>
#include <dlib/dir_nav.h>
#include "dlib/opencv.h"
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace dlib;
using namespace std;
extern "C"{
int enx = 203, int eny = 190, int enw = 98, int enh = 86;
void track(IplImage * ipl, int enx, int eny, int enw, int enh)
{
Mat frame = cvarrToMat(ipl);
image_window win;
correlation_tracker tracker;
array2d<rgb_pixel> img;
std::cout << "Starting" << std::endl;
assign_image(img, cv_image<bgr_pixel>(frame));
tracker.start_track(img, centered_rect(point(enx, eny), enw, enh));
win.set_image(img);
win.clear_overlay();
win.add_overlay(tracker.get_position());
while(ipl) {
Mat frame = cvarrToMat(ipl);
assign_image(img, cv_image<bgr_pixel>(frame));
tracker.update(img);
win.set_image(img);
win.clear_overlay();
win.add_overlay(tracker.get_position());
}
}
}
最佳答案
我建议您看看https://github.com/AlexeyAB/darknet/blob/master/src/yolo_console_dll.cpp
在这里,您会发现许多有关Darknet数据操作的想法。包括追踪器