当前位置:首页>python>OpenCV-Python实战|吃透图像特征:从基础概念到实操应用,读懂计算机“看”世界的方式

OpenCV-Python实战|吃透图像特征:从基础概念到实操应用,读懂计算机“看”世界的方式

  • 2026-06-30 21:56:13
OpenCV-Python实战|吃透图像特征:从基础概念到实操应用,读懂计算机“看”世界的方式

在前几天的分享中,我们从图像预处理、边缘检测、轮廓处理,到傅里叶变换、模板匹配、霍夫变换、图像分割,逐步解锁了OpenCV图像处理的全流程技巧。不知道大家有没有发现一个核心规律:无论是目标检测、图像分割,还是后续的目标识别,本质上都是在找特征、用特征”——图像特征,就是计算机识别图像、区分目标的关键线索,是连接基础图像处理与高级计算机视觉任务的核心桥梁。

很多新手学习OpenCV时,会陷入只会调函数,不懂核心逻辑的误区:比如会用Canny算法做边缘检测,却不知道边缘就是最基础的图像特征;会用模板匹配定位目标,却不知道匹配的本质是特征相似性对比。今天这篇实操教程,就带大家彻底吃透图像特征”——从通俗定义、核心分类,到特征提取实操、实际应用,全程避开晦涩理论,结合前文所学内容,让新手不仅知其然,更知其所以然,为后续高级任务打下坚实基础。

一、前置基础:先搞懂——什么是图像特征?(通俗解读)

很多新手看到特征两个字就觉得抽象,其实用一句话就能讲透:图像特征,就是图像中具有辨识度的信息,是区别于其他图像/区域的独特标志,就像我们区分人与人、物与物一样——我们靠脸型、身高、穿着(人的特征)区分不同的人,计算机靠边缘、颜色、纹理(图像特征)区分不同的目标。

举个通俗例子:一张图片中有苹果和橙子,我们肉眼能快速区分,是因为苹果多为红色、圆形,橙子多为橙色、椭圆形;而计算机能区分它们,靠的就是颜色特征(红色vs橙色)、形状特征(圆形vs椭圆形)——这些能帮助计算机区分目标的信息,就是图像特征。

关键关联(衔接前文):我们前几篇所学的所有操作,本质上都是在提取特征利用特征

边缘检测(CannySobel):提取图像的边缘特征,突出目标轮廓;

轮廓处理:基于边缘特征,提取目标的形状特征(轮廓、面积、周长);

霍夫变换:利用形状特征(直线、圆形),检测图像中的特定目标;

图像分割:基于颜色特征、纹理特征,将不同区域分离;

模板匹配:对比目标图与模板图的特征相似性,实现目标定位。

简单来说,图像特征是所有图像处理任务的核心基石,后续的目标识别、人脸识别、语义分割,本质上都是对特征的进一步分析和利用。

二、核心重点:图像的4大核心特征(必学,适配实操)

图像特征有很多种,但在OpenCV实操中,我们最常用、最核心的只有4种,覆盖90%以上的基础图像处理场景,新手重点掌握这4种,就能应对绝大多数任务,我们结合实操场景,逐一拆解:

1. 边缘特征(最基础、最常用)

核心定义:图像中灰度值突变的区域,就是边缘——比如物体的轮廓、背景与前景的交界处,本质是相邻像素的灰度差异过大,是区分目标与背景、目标与目标的最基础线索。

实操关联(衔接前文):我们前几篇所用的Canny边缘检测、Sobel算子、Laplacian算子,都是最常用的边缘特征提取方法,其中Canny算法提取的边缘最清晰、抗干扰能力最强,是新手首选。

实操代码(复用前文,强化特征认知):

pythonimport cv2import numpy as npimport matplotlib.pyplot as plt# 读取图像并预处理img = cv2.imread("feature_test.jpg", 0)img_blur = cv2.GaussianBlur(img, (3, 3), sigmaX=1)# 提取边缘特征(Canny边缘检测,前文重点讲解)edges = cv2.Canny(img_blur, 50, 150)# 显示效果(原始图 vs 边缘特征图)plt.subplot(1, 2, 1)plt.imshow(img, cmap="gray")plt.title("原始图像")plt.axis("off")plt.subplot(1, 2, 2)plt.imshow(edges, cmap="gray")plt.title("边缘特征提取结果")plt.axis("off")plt.show()

关键说明:边缘特征是后续所有特征提取的基础——没有边缘,就无法提取形状特征;没有边缘,目标与背景就无法区分,后续的分割、检测也无从谈起。

2. 颜色特征(最直观、易提取)

核心定义:图像中像素的颜色信息,是最直观的特征——比如苹果的红色、树叶的绿色、天空的蓝色,本质是像素的RGB/BGR值差异,适合前景与背景颜色差异明显的场景。

实操关联(衔接前文):我们在GrabCut算法中,能精准提取前景,核心就是利用了前景与背景的颜色特征差异;在图像分割中,也常通过颜色阈值,分离不同颜色的目标(如工业零件的颜色筛选)。

实操代码(颜色特征提取,简单易上手):

pythonimport cv2import numpy as npimport matplotlib.pyplot as plt# 读取彩色图像(颜色特征需用彩色图)img = cv2.imread("feature_test.jpg")img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)# 提取颜色特征:筛选红色区域(RGB范围可调整)lower_red = np.array([150, 0, 0]) # 红色下限upper_red = np.array([255, 100, 100]) # 红色上限# 生成颜色掩码(红色区域为白色,其他为黑色)red_mask = cv2.inRange(img_rgb, lower_red, upper_red)# 显示效果(原始图 vs 红色特征掩码)plt.subplot(1, 2, 1)plt.imshow(img_rgb)plt.title("原始彩色图像")plt.axis("off")plt.subplot(1, 2, 2)plt.imshow(red_mask, cmap="gray")plt.title("红色颜色特征提取结果")plt.axis("off")plt.show()

关键说明:颜色特征提取的核心是设置颜色阈值,不同颜色的RGB/BGR范围不同,新手可根据实际图像调整阈值,实现特定颜色目标的分离——这也是后续色彩分割、颜色识别的基础。

3. 形状特征(最核心、用于目标区分)

核心定义:基于边缘特征,提取目标的几何形状信息,比如圆形、矩形、三角形,以及目标的面积、周长、长宽比等,是区分不同类型目标的核心特征——比如硬币是圆形、书本是矩形,靠的就是形状特征。

实操关联(衔接前文):我们前几篇所学的轮廓处理(cv2.findContours)、霍夫变换(霍夫圆、霍夫线),本质上都是在提取和利用形状特征;比如用霍夫圆变换检测圆形硬币,用轮廓处理计算目标的面积和周长,都是形状特征的实际应用。

实操代码(形状特征提取,衔接轮廓处理):

pythonimport cv2import numpy as npimport matplotlib.pyplot as plt# 读取图像并提取边缘img = cv2.imread("feature_test.jpg", 0)img_blur = cv2.GaussianBlur(img, (3, 3), sigmaX=1)edges = cv2.Canny(img_blur, 50, 150)# 提取轮廓(形状特征的基础)contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 绘制轮廓,并计算形状特征(面积、周长)img_color = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)for i, contour in enumerate(contours):# 绘制轮廓(绿色,线条粗细2)cv2.drawContours(img_color, [contour], -1, (0, 255, 0), 2)# 计算形状特征:面积、周长area = cv2.contourArea(contour) # 面积perimeter = cv2.arcLength(contour, True) # 周长(True表示闭合轮廓)# 标注形状特征cv2.putText(img_color, f"Area:{int(area)}", (10, 30+i*30), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2)cv2.putText(img_color, f"Peri:{int(perimeter)}", (120, 30+i*30), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2)# 显示效果(边缘图 vs 形状特征提取结果)plt.subplot(1, 2, 1)plt.imshow(edges, cmap="gray")plt.title("边缘特征图")plt.axis("off")plt.subplot(1, 2, 2)plt.imshow(cv2.cvtColor(img_color, cv2.COLOR_BGR2RGB))plt.title("形状特征提取结果(面积+周长)")plt.axis("off")plt.show()

关键说明:形状特征依赖边缘特征——只有边缘清晰,才能提取到完整的轮廓,进而计算出准确的形状参数(面积、周长、长宽比);形状特征是目标分类、目标分析的核心,比如工业质检中,通过形状特征判断零件是否合格。

4. 纹理特征(最复杂、用于细节区分)

核心定义:图像中像素的排列规律,就是纹理特征——比如布料的纹路、木纹的纹理、纸张的质感,本质是局部像素的灰度分布规律,适合区分外观相似、颜色相近,但纹理不同的目标。

实操关联:纹理特征在实际场景中应用广泛,比如医学图像中区分正常组织与病灶(纹理不同)、农业图像中区分不同作物(纹理不同);OpenCV中常用灰度共生矩阵提取纹理特征,新手无需深入理论,会调用基础函数即可。

实操代码(纹理特征提取,新手入门版):

pythonimport cv2import numpy as npimport matplotlib.pyplot as plt# 读取灰度图像(纹理特征常用灰度图)img = cv2.imread("feature_test.jpg", 0)img_blur = cv2.GaussianBlur(img, (3, 3), sigmaX=1)# 简单纹理特征提取:通过灰度差异计算纹理(新手入门版)# 计算水平方向的灰度差异(纹理越复杂,差异值越大)texture = cv2.Sobel(img_blur, cv2.CV_64F, 1, 0, ksize=3)# 归一化,便于显示texture = cv2.normalize(texture, None, 0, 255, cv2.NORM_MINMAX, dtype=cv2.CV_8U)# 显示效果(原始图 vs 纹理特征图)plt.subplot(1, 2, 1)plt.imshow(img_blur, cmap="gray")plt.title("原始灰度图像")plt.axis("off")plt.subplot(1, 2, 2)plt.imshow(texture, cmap="gray")plt.title("纹理特征提取结果(水平方向)")plt.axis("off")plt.show()

关键说明:纹理特征的提取相对复杂,新手无需深入研究灰度共生矩阵的数学原理,重点理解纹理是像素的排列规律,知道如何通过简单方法(如Sobel算子)初步提取纹理即可;后续高级任务中,我们会进一步讲解复杂纹理特征的提取方法。

三、实操进阶:特征的综合应用(衔接前文,落地场景)

实际图像处理任务中,很少单独使用某一种特征,而是结合多种特征,实现更精准的目标处理——比如目标检测+分割,就是结合边缘、颜色、形状三种特征,我们结合前文所学,实现一次综合实操,强化特征的应用认知:

pythonimport cv2import numpy as npimport matplotlib.pyplot as plt# 读取彩色图像img = cv2.imread("feature_test.jpg")img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)img_blur = cv2.GaussianBlur(img_gray, (3, 3), sigmaX=1)# 1. 提取边缘特征edges = cv2.Canny(img_blur, 50, 150)# 2. 提取颜色特征(筛选蓝色目标)lower_blue = np.array([0, 0, 150])upper_blue = np.array([100, 100, 255])blue_mask = cv2.inRange(img_rgb, lower_blue, upper_blue)# 3. 结合边缘和颜色特征,提取轮廓(形状特征)# 与操作:保留同时满足边缘和颜色特征的区域combined_mask = cv2.bitwise_and(edges, blue_mask)contours, _ = cv2.findContours(combined_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 4. 绘制综合特征提取结果img_result = img.copy()for contour in contours:# 绘制轮廓(红色,线条粗细2)cv2.drawContours(img_result, [contour], -1, (0, 0, 255), 2)# 计算并标注形状特征(面积、周长)area = cv2.contourArea(contour)perimeter = cv2.arcLength(contour, True)x, y = contour[0][0]cv2.putText(img_result, f"Area:{int(area)}", (x, y-30), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2)cv2.putText(img_result, f"Peri:{int(perimeter)}", (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2)# 显示综合效果plt.figure(figsize=(15, 5))# 边缘特征plt.subplot(1, 4, 1)plt.imshow(edges, cmap="gray")plt.title("边缘特征")plt.axis("off")# 颜色特征plt.subplot(1, 4, 2)plt.imshow(blue_mask, cmap="gray")plt.title("蓝色颜色特征")plt.axis("off")# 综合掩码plt.subplot(1, 4, 3)plt.imshow(combined_mask, cmap="gray")plt.title("边缘+颜色综合掩码")plt.axis("off")# 最终结果plt.subplot(1, 4, 4)plt.imshow(cv2.cvtColor(img_result, cv2.COLOR_BGR2RGB))plt.title("综合特征应用结果")plt.axis("off")plt.tight_layout()plt.show()

核心思路:先提取边缘特征(突出目标轮廓),再提取颜色特征(筛选特定颜色目标),通过与操作结合两种特征,过滤掉无关区域,最后提取轮廓(形状特征),实现目标的精准定位和分析——这就是实际项目中特征应用的典型流程,完美衔接前文所有知识点。

四、新手必避的3个特征认知误区

误区1:特征越复杂越好——新手容易陷入追求复杂特征的误区,其实90%的基础场景,用边缘+颜色+形状三种基础特征就足够;复杂特征(如纹理、深度学习特征),只适用于高级任务(如人脸识别),无需过早深入。

误区2:忽略预处理对特征的影响——图像预处理(高斯平滑、二值化)是提取特征的前提,若噪声未去除、边缘不清晰,后续的特征提取会出现大量偏差,甚至无法提取到有效特征(衔接前文预处理知识点)。

误区3:混淆特征提取特征应用”——特征提取是找到特征(如Canny提取边缘),特征应用是利用特征(如用边缘特征做分割),新手要明确两者的区别,先掌握提取方法,再学习应用场景。

五、完整实战代码(一键复制运行)

整合以上所有操作,包含“4大核心特征提取+综合特征应用,替换自己的图像路径,即可一键跑通,适合新手直接实操,巩固特征认知,同时衔接前文系列内容:

pythonimport cv2import numpy as npimport matplotlib.pyplot as plt# 1. 环境验证(可选)print("OpenCV版本:", cv2.__version__)# 2. 读取图像(替换为自己的图像路径)img = cv2.imread("feature_test.jpg")if img is None:print("错误:未找到图像,请检查图像路径!")else:img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)img_blur = cv2.GaussianBlur(img_gray, (3, 3), sigmaX=1)# 3. 提取4大核心特征# 3.1 边缘特征(Canny)edges = cv2.Canny(img_blur, 50, 150)# 3.2 颜色特征(红色)lower_red = np.array([150, 0, 0])upper_red = np.array([255, 100, 100])red_mask = cv2.inRange(img_rgb, lower_red, upper_red)# 3.3 形状特征(轮廓+面积+周长)contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)img_shape = cv2.cvtColor(img_gray, cv2.COLOR_GRAY2BGR)for i, contour in enumerate(contours):cv2.drawContours(img_shape, [contour], -1, (0, 255, 0), 2)area = cv2.contourArea(contour)perimeter = cv2.arcLength(contour, True)cv2.putText(img_shape, f"Area:{int(area)}", (10, 30+i*30), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2)# 3.4 纹理特征(水平方向Sobel)texture = cv2.Sobel(img_blur, cv2.CV_64F, 1, 0, ksize=3)texture = cv2.normalize(texture, None, 0, 255, cv2.NORM_MINMAX, dtype=cv2.CV_8U)# 4. 综合特征应用(边缘+颜色+形状)lower_blue = np.array([0, 0, 150])upper_blue = np.array([100, 100, 255])blue_mask = cv2.inRange(img_rgb, lower_blue, upper_blue)combined_mask = cv2.bitwise_and(edges, blue_mask)contours_combined, _ = cv2.findContours(combined_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)img_combined = img.copy()for contour in contours_combined:cv2.drawContours(img_combined, [contour], -1, (0, 0, 255), 2)area = cv2.contourArea(contour)perimeter = cv2.arcLength(contour, True)x, y = contour[0][0]cv2.putText(img_combined, f"Area:{int(area)}", (x, y-30), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2)# 5. 统一显示所有效果plt.figure(figsize=(15, 10))# 第一行:4大核心特征plt.subplot(2, 4, 1)plt.imshow(img_rgb)plt.title("原始图像")plt.axis("off")plt.subplot(2, 4, 2)plt.imshow(edges, cmap="gray")plt.title("边缘特征")plt.axis("off")plt.subplot(2, 4, 3)plt.imshow(red_mask, cmap="gray")plt.title("颜色特征(红色)")plt.axis("off")plt.subplot(2, 4, 4)plt.imshow(img_shape)plt.title("形状特征(面积)")plt.axis("off")# 第二行:纹理特征+综合应用plt.subplot(2, 4, 5)plt.imshow(texture, cmap="gray")plt.title("纹理特征")plt.axis("off")plt.subplot(2, 4, 6)plt.imshow(blue_mask, cmap="gray")plt.title("颜色特征(蓝色)")plt.axis("off")plt.subplot(2, 4, 7)plt.imshow(combined_mask, cmap="gray")plt.title("边缘+颜色综合掩码")plt.axis("off")plt.subplot(2, 4, 8)plt.imshow(cv2.cvtColor(img_combined, cv2.COLOR_BGR2RGB))plt.title("综合特征应用结果")plt.axis("off")plt.tight_layout()plt.show()# 6. 保存结果(可选)cv2.imwrite("edge_feature.jpg", edges)cv2.imwrite("color_feature.jpg", red_mask)cv2.imwrite("shape_feature.jpg", img_shape)cv2.imwrite("combined_feature.jpg", img_combined)

最后总结(衔接系列,强化记忆)

从图像预处理、边缘检测,到今天的理解特征,我们终于打通了OpenCV图像处理的核心逻辑”——所有图像处理任务,本质上都是提取特征、分析特征、应用特征:边缘特征是基础,颜色特征是辅助,形状特征是核心,纹理特征是补充,四种特征结合,就能应对绝大多数基础场景。

新手学习的重点,不是背诵复杂的特征理论,而是理解特征是什么、如何提取、如何应用:先掌握边缘、颜色、形状三种基础特征的提取方法,结合前文所学的预处理、轮廓处理、分割等技巧,多实操、多对比,就能慢慢建立特征思维”——知道什么样的场景用什么样的特征,什么样的特征能解决什么样的问题。

后续我们将进入高级计算机视觉任务(目标识别、特征匹配),而这些任务的核心,依然是特征”——比如SIFTSURF等高级特征提取算法,本质上都是对基础特征的优化和升级。吃透今天的内容,就能为后续的学习打下坚实的基础。

辛苦大家看到这里啦,如果你觉得这篇OpenCV实操教程对你有帮助,麻烦动动小手,点赞+在看,让更多学习计算机视觉、OpenCV的小伙伴看到,一起交流学习、共同进步~

关注【AI与计算机视觉】,后台回复「图像特征」,即可免费获取本文完整代码、测试素材(含各类特征测试图),还有更多OpenCV实战教程,助力大家快速上手,吃透图像特征全流程!

评论区留言「特征实操」,我们一起打卡练习,互相交流遇到的问题,深耕计算机视觉,解锁更多实战技巧!后续我们将讲解高级特征提取算法(SIFT),衔接今天的内容,记得持续关注哦~

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 23:13:22 HTTP/2.0 GET : https://f.mffb.com.cn/a/493963.html
  2. 运行时间 : 0.131588s [ 吞吐率:7.60req/s ] 内存消耗:4,530.11kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=d2addf9ef995a41b33a95d8f892e83a6
  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.000978s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001554s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000790s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000685s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001391s ]
  6. SELECT * FROM `set` [ RunTime:0.000549s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001470s ]
  8. SELECT * FROM `article` WHERE `id` = 493963 LIMIT 1 [ RunTime:0.001438s ]
  9. UPDATE `article` SET `lasttime` = 1783091602 WHERE `id` = 493963 [ RunTime:0.019065s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000605s ]
  11. SELECT * FROM `article` WHERE `id` < 493963 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001107s ]
  12. SELECT * FROM `article` WHERE `id` > 493963 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001038s ]
  13. SELECT * FROM `article` WHERE `id` < 493963 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002554s ]
  14. SELECT * FROM `article` WHERE `id` < 493963 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.004237s ]
  15. SELECT * FROM `article` WHERE `id` < 493963 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003826s ]
0.136301s