当前位置:首页>python>OpenCV 目标跟踪算法介绍与python和C++版本代码实现

OpenCV 目标跟踪算法介绍与python和C++版本代码实现

  • 2026-01-22 18:17:10
OpenCV 目标跟踪算法介绍与python和C++版本代码实现

OpenCV 目标跟踪算法介绍与实现

本文总结OpenCV中常见的目标跟踪算法,并提供Python和C++的双版本实现。

一、OpenCV中目标跟踪算法介绍

OpenCV提供了多种目标跟踪算法,主要分为两类:

1. 传统跟踪算法

  • • BOOSTING: 基于Haar级联的AdaBoost算法
  • • MIL: 多实例学习算法
  • • KCF: 核相关滤波算法
  • • TLD: 跟踪-学习-检测算法
  • • MedianFlow: 中值流跟踪算法
  • • MOSSE: 最小输出平方误差和算法
  • • CSRT: 通道和空间可靠性算法

2. 深度学习算法

  • • GOTURN: 基于深度学习的通用目标跟踪器

二、代码实现

Python版本

环境要求:(亲测,opencv版本不能大于3)

opencv-python=3.4.15.55opencv-contrib-python=3.4.15.55numpy=1.24.4

import cv2import sysimport timeclass OpenCVTracker:def __init__(self, tracker_type="KCF"):"""        初始化跟踪器        Args:            tracker_type: 跟踪算法类型                "BOOSTING", "MIL", "KCF", "TLD",                "MEDIANFLOW", "GOTURN", "MOSSE", "CSRT"        """self.tracker_type = tracker_typeself.tracker = self._create_tracker()self.bbox = Noneself.frame_count = 0self.fps = 0def _create_tracker(self):"""根据类型创建跟踪器"""        tracker_map = {"BOOSTING": cv2.TrackerBoosting_create,"MIL": cv2.TrackerMIL_create,"KCF": cv2.TrackerKCF_create,"TLD": cv2.TrackerTLD_create,"MEDIANFLOW": cv2.TrackerMedianFlow_create,"GOTURN": cv2.TrackerGOTURN_create,"MOSSE": cv2.TrackerMOSSE_create,"CSRT": cv2.TrackerCSRT_create        }if self.tracker_type in tracker_map:try:return tracker_map[self.tracker_type]()except AttributeError:print(f"警告: OpenCV版本可能不支持{self.tracker_type}算法")print("尝试使用KCF作为替代...")return cv2.TrackerKCF_create()else:print(f"错误: 不支持的跟踪器类型: {self.tracker_type}")print("使用默认的KCF算法")return cv2.TrackerKCF_create()def initialize(self, frame, bbox):"""        初始化跟踪器        Args:            frame: 初始帧图像            bbox: 边界框 (x, y, width, height)        """self.bbox = bbox        success = self.tracker.init(frame, bbox)self.frame_count = 0self.start_time = time.time()return successdef update(self, frame):"""        更新跟踪器        Args:            frame: 当前帧图像        Returns:            success: 是否跟踪成功            bbox: 更新后的边界框        """self.frame_count += 1# 更新跟踪器        success, bbox = self.tracker.update(frame)# 计算FPSif success:            current_time = time.time()            elapsed_time = current_time - self.start_timeif elapsed_time > 0:self.fps = self.frame_count / elapsed_timereturn success, bboxdef draw_bbox(self, frame, bbox, color=(00255), thickness=1):"""在图像上绘制边界框"""        x, y, w, h = [int(v) for v in bbox]        cv2.rectangle(frame, (x, y), (x + w, y + h), color, thickness)# 显示跟踪器类型和FPS        info = f"{self.tracker_type}  FPS: {self.fps:.1f}"        cv2.putText(frame, info, (6060),                    cv2.FONT_HERSHEY_SIMPLEX, 1, (00255), 4)return framedef run_tracker(video_source=0, tracker_type="KCF"):"""    运行目标跟踪器    Args:        video_source: 视频源 (0-摄像头,或视频文件路径)        tracker_type: 跟踪算法类型    """# 创建视频捕获对象    cap = cv2.VideoCapture(video_source)if not cap.isOpened():print("错误: 无法打开视频源")return# 读取第一帧    ret, frame = cap.read()if not ret:print("错误: 无法读取视频")        cap.release()return# 选择ROI(感兴趣区域)print("请选择跟踪目标区域,然后按SPACE或ENTER键确认,按ESC取消")    cv2.namedWindow("Select ROI", cv2.WINDOW_NORMAL)    cv2.imshow("Select ROI", frame)    bbox = cv2.selectROI("Select ROI", frame, False)    cv2.destroyWindow("Select ROI")if bbox == (0000):print("未选择区域,退出程序")        cap.release()return# 创建跟踪器    tracker = OpenCVTracker(tracker_type)# 初始化跟踪器if not tracker.initialize(frame, bbox):print("错误: 跟踪器初始化失败")        cap.release()returnprint(f"开始跟踪,使用算法: {tracker_type}")print("按ESC键退出")while True:        ret, frame = cap.read()if not ret:break# 更新跟踪器        success, bbox = tracker.update(frame)# 绘制结果if success:            frame = tracker.draw_bbox(frame, bbox)else:            cv2.putText(frame, "Track Failed", (6060),                        cv2.FONT_HERSHEY_SIMPLEX, 1, (00255), 2)# 显示结果        cv2.namedWindow("Select ROI", cv2.WINDOW_NORMAL)        cv2.imshow("Select ROI", frame)# 按键处理        key = cv2.waitKey(1) & 0xFFif key == 27:  # ESC键break# 清理资源    cap.release()    cv2.destroyAllWindows()if __name__ == "__main__":run_tracker("../WIN_20221029_16_49_19_Pro.mp4""KCF")

C++版本

CmakeList.txt:

cmake_minimum_required(VERSION 3.10)project(OpenCVTracker)set(CMAKE_CXX_STANDARD 11)set(CMAKE_CXX_STANDARD_REQUIRED ON)# 查找OpenCVfind_package(OpenCV REQUIRED)# 包含目录include_directories(${OpenCV_INCLUDE_DIRS})# 可执行文件add_executable(tracker_comparison tracker_main.cpp)# 链接库target_link_libraries(tracker_comparison ${OpenCV_LIBS})

Code:(opencv版本依然使用4以下版本)

#include<opencv2/opencv.hpp>#include<opencv2/tracking.hpp>#include<iostream>#include<chrono>#include<map>#include<string>using namespace cv;using namespace std;using namespace std::chrono;class OpenCVTracker{private:    Ptr<Tracker> tracker;    string trackerType;    Rect2d bbox;int frameCount;double fps;    steady_clock::time_point startTime;public:OpenCVTracker(const string& type = "CSRT"        : trackerType(type), frameCount(0), fps(0) {createTracker();    }boolcreateTracker(){// 创建跟踪器if (trackerType == "BOOSTING") {            tracker = TrackerBoosting::create();        } else if (trackerType == "MIL") {            tracker = TrackerMIL::create();        } else if (trackerType == "KCF") {            tracker = TrackerKCF::create();        } else if (trackerType == "TLD") {            tracker = TrackerTLD::create();        } else if (trackerType == "MEDIANFLOW") {            tracker = TrackerMedianFlow::create();        } else if (trackerType == "GOTURN") {            tracker = TrackerGOTURN::create();        } else if (trackerType == "MOSSE") {            tracker = TrackerMOSSE::create();        } else if (trackerType == "CSRT") {            tracker = TrackerCSRT::create();        } else {            cerr << "错误: 不支持的跟踪器类型: " << trackerType << endl;            cerr << "使用默认的CSRT算法" << endl;            trackerType = "CSRT";            tracker = TrackerCSRT::create();return false;        }if (tracker.empty()) {            cerr << "错误: 无法创建跟踪器" << endl;return false;        }        cout << "创建跟踪器: " << trackerType << endl;return true;    }boolinitialize(const Mat& frame, const Rect2d& boundingBox){        bbox = boundingBox;        frameCount = 0;        startTime = steady_clock::now();return tracker->init(frame, bbox);    }boolupdate(const Mat& frame, Rect2d& updatedBox){        frameCount++;bool success = tracker->update(frame, bbox);        updatedBox = bbox;// 计算FPSif (success) {auto currentTime = steady_clock::now();auto elapsedTime = duration_cast<milliseconds>(currentTime - startTime);if (elapsedTime.count() > 0) {                fps = frameCount * 1000.0 / elapsedTime.count();            }        }return success;    }voiddrawBoundingBox(Mat& frame, const Rect2d& box, const Scalar& color = Scalar(02550), int thickness = 2){rectangle(frame, box, color, thickness);// 显示跟踪器类型和FPS        string info = trackerType + " | FPS: " + to_string(fps).substr(04);putText(frame, info, Point(1030),                FONT_HERSHEY_SIMPLEX, 0.8, color, 2);    }string getTrackerType()const{return trackerType;    }doublegetFPS()const{return fps;    }};voidrunTracker(int videoSource = 0const string& trackerType = "CSRT"){// 打开视频源VideoCapture cap(videoSource);if (!cap.isOpened()) {        cerr << "错误: 无法打开视频源" << endl;return;    }// 读取第一帧    Mat frame;if (!cap.read(frame)) {        cerr << "错误: 无法读取视频" << endl;        cap.release();return;    }// 选择ROI    Rect2d bbox = selectROI("选择跟踪区域", frame, false);if (bbox.width == 0 || bbox.height == 0) {        cout << "未选择区域,退出程序" << endl;        cap.release();destroyAllWindows();return;    }// 创建跟踪器OpenCVTracker tracker(trackerType);// 初始化跟踪器if (!tracker.initialize(frame, bbox)) {        cerr << "错误: 跟踪器初始化失败" << endl;        cap.release();destroyAllWindows();return;    }    cout << "开始跟踪,使用算法: " << trackerType << endl;    cout << "按ESC键退出,按R键重新选择区域" << endl;namedWindow("目标跟踪", WINDOW_AUTOSIZE);while (cap.read(frame)) {        Rect2d updatedBox;// 更新跟踪器bool success = tracker.update(frame, updatedBox);// 绘制结果if (success) {            tracker.drawBoundingBox(frame, updatedBox);        } else {putText(frame, "跟踪失败"Point(1060),                    FONT_HERSHEY_SIMPLEX, 0.8Scalar(00255), 2);        }// 显示结果imshow("目标跟踪", frame);// 按键处理char key = (char)waitKey(30);if (key == 27) {  // ESC键break;        } else if (key == 'r' || key == 'R') {  // R键重置            cout << "重新选择跟踪区域..." << endl;            bbox = selectROI("选择跟踪区域", frame, false);if (bbox.width > 0 && bbox.height > 0) {                tracker.initialize(frame, bbox);            }        }    }// 清理资源    cap.release();destroyAllWindows();}intmain(int argc, char** argv){runTracker(0"CSRT");  // 使用摄像头,CSRT算法return 0;}

三、编译与运行说明

Python版本运行

# 安装依赖(使用清华镜像源,下载速度快一些)pip install opencv-python==3.4.15.55 opencv-contrib-python==3.4.15.55 numpy==1.24.4 -i https://pypi.tuna.tsinghua.edu.cn/simple/# 运行python tracker.py 

C++版本编译

# 使用CMake编译mkdir buildcd buildcmake ..make# 运行程序./tracker_demo test.mp4 KCF

四、总结和使用建议

算法
速度
准确性
抗遮挡
适用场景
BOOSTING
中等
简单场景,实时性要求不高
MIL
中等
中等
中等
一般跟踪任务
KCF
中等
实时跟踪,无严重遮挡
TLD
长时跟踪,目标可能消失重现
MedianFlow
中等
匀速直线运动目标
MOSSE
很快
中等
极速跟踪需求
CSRT
中等
高精度跟踪
GOTURN
中等
复杂场景,GPU加速
  1. 1. 实时性要求高:选择KCF或MOSSE
  2. 2. 精度要求高:选择CSRT或GOTURN
  3. 3. 抗遮挡需求:选择TLD或CSRT
  4. 4. 简单场景:选择MedianFlow或MOSSE
  5. 5. CPU环境:避免使用GOTURN
  6. 6. 长时跟踪:建议使用TLD

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 19:23:38 HTTP/2.0 GET : https://f.mffb.com.cn/a/463966.html
  2. 运行时间 : 0.109754s [ 吞吐率:9.11req/s ] 内存消耗:4,489.82kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ec739f9823b9f6751302d6b35940941d
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000434s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000575s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.009759s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.004498s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000537s ]
  6. SELECT * FROM `set` [ RunTime:0.000199s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000568s ]
  8. SELECT * FROM `article` WHERE `id` = 463966 LIMIT 1 [ RunTime:0.003950s ]
  9. UPDATE `article` SET `lasttime` = 1770549818 WHERE `id` = 463966 [ RunTime:0.008937s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000241s ]
  11. SELECT * FROM `article` WHERE `id` < 463966 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.003311s ]
  12. SELECT * FROM `article` WHERE `id` > 463966 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000689s ]
  13. SELECT * FROM `article` WHERE `id` < 463966 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004988s ]
  14. SELECT * FROM `article` WHERE `id` < 463966 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000673s ]
  15. SELECT * FROM `article` WHERE `id` < 463966 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000755s ]
0.111337s