opencv - 如何使用 dlib(c++) 从 darknet(c) 传递的视频流中跟踪对象?

标签 opencv tracking object-detection dlib darknet

我正在使用暗网检测实时视频流中的对象,并希望将每个帧传递给 dlib 以跟踪该对象,但我很困惑我如何从暗网的 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 在那里你会发现很多关于暗网数据操作的想法。包括追踪器

关于opencv - 如何使用 dlib(c++) 从 darknet(c) 传递的视频流中跟踪对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49527520/

相关文章:

android - 构建本地应用程序以唯一识别、跟踪和锁定智能手机

object - OpenCV - 在 OpenCV 中训练 LatentSVMDetector 模型(Pedro Felzenszwalb 的算法)

python - 如何使用自定义数据集运行 Keras Retinanet 对象检测代码示例?

php - 有没有办法将 OpenCV 与 PHP 集成?

python - imshow奇怪的cv2行为

android - 导入 : com. google.analytics.tracking.android.Transaction 无法解析

php - 记录事件 : How to record time using a PHP application?

python - 无法通过 OpenCV dnn 模块显示 YOLO 结果

Java openCV - 将位图转换为 Mat 时出错

c++ - 在 opencv 中使用体积图像进行 3D 图像处理