树叶识别系统源码解析:PyQt5+OpenCV图像分类与部署避坑
简介这是一套基于Python开发的树叶识别系统完整源码包适合计算机视觉初学者、高校课程设计或毕业设计参考使用。项目通过图形界面即可加载并识别树叶图像兼顾算法实现与交互操作能帮助学习者理解图像预处理、特征提取、分类识别的基本流程也便于在此基础上替换数据集或调整模型参数。压缩包共4个文件包含两个Python程序文件、一个UI界面文件以及一段演示视频整体大小约6.98MB便于快速下载与本地运行。其中UI文件用于构建可视化操作窗口py脚本承担核心识别逻辑演示视频则直观展示了从启动到识别结果的完整过程。目前已有434人学习下载适合需要快速上手完整项目、对照视频复现效果并进一步改造扩展的Python学习者。1. 这套树叶识别系统源码包先别急着跑 Leaf.py拿到这份基于 Python 的树叶识别系统源码第一件事不是双击 Leaf.py而是先搞清楚里面四个文件谁管界面、谁管识别、谁负责演示。很多人卡住的点不在算法而在把一个图片路径从文件夹成功送进模型前的环境问题和路径问题。这个包里 UI_Leaf.ui、UI_Leaf.py、Leaf.py 加上一个演示视频结构上就是一个完整的 PyQt5 桌面应用界面文件管交互主程序管逻辑录屏给你标准答案。适合课程设计、毕业设计以及想快速把图像分类模型套进桌面界面的开发者。如果你是第一次接触 PyQt5 和 OpenCV 的组合这份资源能让你少踩不少坑但也需要看懂下面这几个文件的真实分工。2. 源码包里的四个文件谁在干活谁在装样子2.1 文件清单与工程结构解读拿到 zip 解压后典型目录长这样文件不多但每个都有明确职责文件格式作用是否建议手改code文件夹存放代码的根目录只读UI_Leaf.uiXML 文本Qt Designer 保存的界面布局用 Designer 改不直接手改UI_Leaf.pyPython 脚本pyuic 根据 .ui 自动生成不手改改动会被覆盖Leaf.pyPython 脚本主程序加载界面、绑定按钮、调用识别主要改动对象树叶识别录屏.mp4视频演示系统操作与识别效果对照参考先说 UI_Leaf.ui 和 UI_Leaf.py 的关系。前者是 Qt Designer 保存的界面描述文件里面是 XML 格式的窗口、按钮、标签位置信息后者是 Qt 官方工具 pyuic5 从 .ui 自动生成的 Python 代码。这两个文件的对应关系是你改 .ui然后执行一次 pyuic5 重新生成 .py。如果你直接去改 UI_Leaf.py 里的控件布局下次重新编译又被覆盖改了个寂寞。我一般会记住这条规则.ui 是源.py 是产物。Leaf.py 才是真正的业务入口。它要做的事是加载 UI_Leaf.py 里定义的界面类初始化识别模型或特征提取器然后把界面上的按钮点击事件和识别逻辑绑起来。整个工程的可玩点基本都在这个文件里。演示视频则是给你看最终效果的视频里如果识别的是桂花叶、银杏叶这类常见叶片说明默认模型或特征配置就是针对这些类别训练的。2.2 从 .ui 到 .py 的编译链路如果你想把界面改一改比如把按钮文字从“识别”改成“开始预测”正确流程是# 1. 在 Qt Designer 中打开 UI_Leaf.ui修改后保存 # 2. 回到命令行执行编译 pyuic5 -o UI_Leaf.py UI_Leaf.ui参数说明-o指定输出文件后面紧跟的是界面文件路径。执行完这一步UI_Leaf.py 里的 Ui_Leaf 类就会包含你最新的界面定义。Leaf.py 里一般会这样引用它import sys from PyQt5.QtWidgets import QMainWindow, QApplication from UI_Leaf import Ui_Leaf class LeafApp(QMainWindow): def __init__(self): super().__init__() self.ui Ui_Leaf() self.ui.setupUi(self)这段代码的逻辑是实例化 UI 类调用 setupUi 把控件装进主窗口。Ui_Leaf是 pyuic 根据 .ui 文件里根节点的 class 名生成的结构上不能改只能遵循。常见做法是在 Leaf.py 里继承这个 UI 类或组合持有它再用self.ui.按钮对象名来绑定事件。有一些工程会把 UI_Leaf.py 改成手动写省掉 pyuic 这一环。但在资源包已有 .ui 的前提下不建议这么干因为后续改界面你还要写一遍布局代码反而更麻烦。2.3 演示视频的正确用法很多人忽略那个 mp4直接去跑源码跑挂了再一头雾水。我的建议是先看视频而且要看两遍第一遍看操作流程第二遍留意界面上的阈值参数或显示结果。视频里演示的图片如果偏绿色背景说明识别逻辑大概率依赖颜色特征如果视频里出现不同形状的叶片切换说明特征里可能加入了轮廓或形状因子。录屏里看到的界面和 Leaf.py 里创建的控件是一一对应的比如视频里有个「打开图片」按钮在 UI_Leaf.ui 里就有一个同名按钮对象。利用视频反推代码结构是拆解任何源码包最快的方法。等代码跑通了再用视频里的同一张图去验证你的识别结果是否一致这就是最简单的回归测试。3. 树叶识别是怎么实现的先定位 Leaf.py 里的核心逻辑3.1 两条技术路线先判断你手里是哪条树叶识别本质是一个图像分类任务。这类源码包通常走两条路线之一传统特征工程路线或者深度学习路线。传统路线是最常见的课程设计方案把叶片图片从背景里分割出来提取颜色直方图、形态特征面积、周长、Hu 矩丢给 SVM 或随机森林分类。优点是依赖小、训练快、代码容易读懂CPU 就能跑。深度学习路线则是在 keras 或 PyTorch 里加载预训练模型用迁移学习微调识别准确率更高但对环境要求更高模型文件通常几十 MB 甚至上百 MB。打开 Leaf.py 的第一件事看 import 段。如果出现from sklearn.svm import SVC或cv2.calcHist是传统路线。如果出现from tensorflow.keras.models import load_model或者.h5文件路径是深度学习路线。这两种路线的调试思路完全不同传统路线要看特征提取参数深度路线要看模型文件是否齐全。3.2 颜色特征提取的典型实现资源包里 Leaf.py 没提供具体代码的情况下按这类源码最常见的写法识别核心会围绕 HSV 颜色直方图展开。原因很简单树叶颜色相对集中不同树种的叶色存在可区分的差异HSV 空间比 BGR 更贴合人眼对颜色的感知。示例逻辑如下import cv2 import numpy as np def extract_leaf_feature(img_path, bins32): # 用 imdecode 而不是 imread解决中文路径读不到图的问题 img cv2.imdecode(np.fromfile(img_path, dtypenp.uint8), cv2.IMREAD_COLOR) if img is None: return None hsv cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # 提取绿色区域作为叶片掩膜过滤背景 lower (26, 40, 40) upper (90, 255, 255) mask cv2.inRange(hsv, lower, upper) # 计算 H 和 S 通道的二维直方图 hist cv2.calcHist([hsv], [0, 1], mask, [bins, bins], [0, 180, 0, 256]) cv2.normalize(hist, hist) return hist.flatten()逻辑说明imdecode配合np.fromfile是为了绕开 Windows 下 OpenCV 的 imread 不支持中文路径的问题这里读取的是一张完整的树叶图片。inRange的作用是生成掩膜把绿色叶片区域从背景里抠出来颜色范围从 HSV 的 H26 到 H90覆盖黄绿到深绿。calcHist的四个关键参数是通道[0,1]表示只用 H 和 S 两个通道忽略亮度 V区间[0,180]是 H 通道的范围[0,256]是 S 通道的范围bins 设置每个通道分多少格。bins32意味着最终特征向量长度是 32乘以32 等于 1024 维。这个数字不是拍脑袋定的bins 太小比如 8区分度不够不同树种的直方图长得差不多bins 太大比如 128维度爆炸样本少时分类器容易过拟合。我一般先用 32跑一轮分类准确率再决定要不要调到 64。3.3 分类器训练与预测特征提取之后分类器部分是另一段核心代码。课程设计里出现频率最高的是 SVM因为小样本下它的表现比神经网络稳定得多from sklearn.svm import SVC # X_train 是样本特征矩阵每行一个样本y_train 是对应的叶片类别标签 clf SVC(kernelrbf, C10, gammascale, probabilityTrue) clf.fit(X_train, y_train) # 预测时单张图特征要 reshape 成二维 feat extract_leaf_feature(test.jpg).reshape(1, -1) label clf.predict(feat)[0]参数说明kernelrbf是径向基核适合特征维度不高但类别边界不规则的场景C10控制误分类惩罚越大越容易过拟合越小越容易欠拟合gammascale让 sklearn 根据特征维度自动计算 gamma 值省去手动调。probabilityTrue虽然会慢一点但可以输出每个类别的概率界面上显示「置信度」就靠它。如果 Leaf.py 里没有训练代码只有加载模型说明训练环节可能单独放在另一个脚本里或者源码包附带了一个.pkl格式的模型文件。你去看 Leaf.py 里joblib.load或pickle.load的调用就能确认。找不到对应文件时多半是没把完整 zip 解压或者模型路径写死了相对路径而你从别的目录启动了程序。4. 环境搭建与跑通从裸机到看到界面4.1 Python 版本怎么选资源包的作者不会保证所有 Python 版本都兼容实测下来 Python 3.8 和 3.9 是兼容性最好的区间。Python 3.10 以上装旧版 PyQt5 偶尔会遇到缺少 DLL 或者 wheel 不匹配的问题Python 3.12 更是容易踩坑。如果你的机器装的是 3.12建议直接用 conda 建一个 3.9 环境省得后面为了一点兼容性问题来回折腾。安装依赖的核心命令pip install PyQt5 opencv-python numpy scikit-learn如果机器上 Python 环境比较干净或者不想污染全局环境我一般会先建虚拟环境python -m venv leaf_env # Windows leaf_env\Scripts\activate # macOS / Linux source leaf_env/bin/activate激活虚拟环境再执行 pip 安装这样源码包引入的依赖全锁在独立目录里不干扰你其他项目。opencv-python是 OpenCV 的预编译 wheel自带常用库不需要单独装别的依赖。PyQt5是界面库。scikit-learn只有 Leaf.py 里用了 SVC 或 train_test_split 时才需要。4.2 验证依赖是否装齐依赖装完后别直接跑 Leaf.py先跑一个三行验证脚本确认三个核心包能被正常导入import cv2 import numpy import PyQt5 print(OpenCV:, cv2.__version__) print(NumPy:, numpy.__version__) print(PyQt5:, PyQt5.QtCore.PYQT_VERSION_STR)逻辑很简单任何一个 import 报错你都能当场知道是哪一环出了问题。OpenCV 导入失败最常见于 Python 3.12 环境报错信息通常是 DLL load failed处理办法是换 Python 3.9 重装。PyQt5 导入失败通常是因为安装时网络中断导致 wheel 不完整重跑一次 pip install 即可。4.3 运行入口与常见启动方式确认依赖没问题后启动系统python Leaf.py界面弹出的瞬间先不要乱点按钮按演示视频的流程走一遍先通过「打开图片」选一张树叶照片再点「识别」看右侧结果框有没有输出类别名。如果界面没弹出来看终端报错。最常碰到的两类错误一是ModuleNotFoundError: No module named UI_Leaf。原因是你把 Leaf.py 放在了 code 文件夹外的其他路径Python 找不到同目录的 UI_Leaf.py。解决方法是 cd 到 Leaf.py 所在目录再运行不要在别的目录用绝对路径去执行。二是AttributeError: LeafApp object has no attribute xxx。这是 Leaf.py 里引用了一个 UI_Leaf.ui 里不存在的控件名可能是资源包版本不一致也可能是 Leaf.py 被改过但 UI_Leaf.py 没重新生成。解决方法是打开 UI_Leaf.ui 用 Qt Designer 看控件对象名再把 Leaf.py 里的引用改一致。4.4 界面参数在哪里调识别系统跑通后界面上的阈值和参数一般在两个地方。一是 UI 上的输入框比如「颜色阈值」「最小面积」这些值通过 Leaf.py 里的self.ui.xxx.text()读取并转成 int 或 float。二是 Leaf.py 文件顶部的大段常量定义比如SVM_C10、HIST_BINS32。建议先把常量集中管理避免散落在函数里不好调。若资源包的 Leaf.py 把参数散写在了各个函数内部你拿到手后第一件事就是把它们抽出来提到文件顶部统一修改尤其是接下来要调优的时候。5. 避坑与排查五个常见问题每个都是血泪经验5.1 界面对象名引用不一致运行直接 AttributeError现象运行 Leaf.py 后界面没弹出来终端报AttributeError: LeafApp object has no attribute btn_open。原因Leaf.py 里绑定的控件名和 UI_Leaf.py 里实际生成的对象名对不上。这种情况大概率是 .ui 文件被改过或者 Leaf.py 是从别的工程复制过来改的没改干净。对象名在 Qt Designer 里叫 objectName生成代码后变成self.btn_open这样的属性。解决不要靠猜直接用文本编辑器打开 UI_Leaf.ui 搜索widget classQPushButton namebtn_choose这一段name 属性就是真实对象名。对照 Leaf.py 里的引用逐字检查。如果是 Leaf.py 引用了多余控件删掉那一行如果只是名字拼错改成和 .ui 一致。从那以后我拿到任何 PyQt 工程都先 grep 一遍 objectName再动 Leaf.py。5.2 中文路径下图片加载失败识别结果永远为空现象按钮点击后没有报错但结果区空白或者程序直接崩。换成全英文路径的图片又能正常识别。原因Windows 下 OpenCV 的 imread 内部调用的是 C 标准库的文件接口对中文路径支持很差路径里带「树叶」「测试」这类字符时会返回空对象。很多工程直接写cv2.imread(path)在中文 Windows 环境必踩。解决用第一章代码里的 imdecode 加 fromfile 组合替代 imreadimport cv2 import numpy as np def safe_imread(path): # fromfile 读取二进制imdecode 解码成图像 data np.fromfile(path, dtypenp.uint8) if data.size 0: return None return cv2.imdecode(data, cv2.IMREAD_COLOR)关键点是np.fromfile不解析路径编码只是原样读取文件imdecode接收内存数据直接解码绕开 imread 的路径限制。这个替换对图片文件名含中文、路径含中文都有效。如果你不想改代码也可以把数据集放到 D:\leaf_data 这种纯英文路径下但治标不治本。5.3 界面点击识别后卡死窗口变成白板现象点「识别」按钮后窗口立刻变灰或变成「未响应」等几秒后恢复图片多的时候直接崩溃。原因Leaf.py 在 UI 主线程里同步执行了图片读取、特征提取、分类预测这一串耗时操作。PyQt5 的主线程负责界面事件循环长时间阻塞在这里操作系统就判定窗口失去响应。特征提取还好如果是深度学习模型推理卡顿更明显。解决把耗时任务丢进 QThread 或使用QTimer.singleShot切到线程池。最简单的改法是引入 QThreadfrom PyQt5.QtCore import QThread, pyqtSignal class Worker(QThread): result pyqtSignal(str) def __init__(self, img_path): super().__init__() self.img_path img_path def run(self): # 这里放原本按钮点击后的整段识别逻辑 label predict(self.img_path) self.result.emit(label)逻辑说明QThread开一个子线程跑识别主线程继续处理界面事件。识别完成后通过result信号把结果传回主线程更新界面。信号参数类型是 str直接用文本显示类别名。注意不要在子线程里直接更新 UI 控件Qt 不允许非主线程碰界面必须走信号槽。5.4 模型文件缺失加载时报 EOF 或 UnpicklingError现象Leaf.py 里写了joblib.load(leaf_model.pkl)或load_model(model.h5)运行时报文件不存在或文件损坏。原因zip 包解压不完整或模型文件不在 Leaf.py 的运行目录下。还有一种可能是模型文件超过 GitHub 上传限制分包压缩后只解压了部分分卷。解决先看 Leaf.py 里加载模型用的路径再ls检查该路径下有没有对应文件。如果发现 zip 里有分卷.z01、.z02 这类必须全部解压到同一目录再合并解压。如果 Leaf.py 和模型文件不在同一层目录把模型路径改成相对主程序文件的绝对路径用os.path.join(os.path.dirname(__file__), models, leaf_model.pkl)方式定位比直接写文件名保险得多。这类路径写死问题在课程设计源码里出现频率极高建议拿到资源后第一件事就是梳理路径。5.5 装完 PyQt5 后启动闪退命令行无任何报错现象双击 Leaf.py 窗口闪现一下就没了但在终端里用python Leaf.py运行又能正常启动。原因Windows 下双击 .py 文件默认关联的 Python 版本不对或者关联到了 Microsoft Store 的 Python 别名入口。后者启动后遇到依赖缺失会直接静默退出不把报错打到终端里。解决所有诊断和运行都走命令行不用双击。进入 Leaf.py 所在目录执行python Leaf.py让报错信息完整显示。如果是依赖缺失按报错提示补装如果是一些奇怪的 Qt 平台插件问题检查环境变量QT_QPA_PLATFORM_PLUGIN_PATH是否指向了正确的 PyQt5 插件目录。最省事的办法是始终在虚拟环境里运行把系统 Python 隔离在外。6. 从静态图到实时识别给系统加一个摄像头输入跑通静态图识别后很多人想做的下一件事是换成摄像头实时识别。这个改动并不复杂核心是用 OpenCV 的 VideoCapture 读取摄像头画面周期性抽取一帧送给识别函数再把结果画到画面顶部。先写一个最精简的摄像头识别循环import cv2 from Leaf import predict # 复用资源包里已有的识别函数 cap cv2.VideoCapture(0) if not cap.isOpened(): print(无法打开摄像头检查索引 0 是否被占用) while True: ok, frame cap.read() if not ok: break # 每帧都跑识别会卡顿常见做法是抽帧比如每 0.5 秒处理一次 label predict(frame) # 结果画在画面上方 cv2.putText(frame, label, (30, 50), cv2.FONT_HERSHEY_SIMPLEX, 1.2, (0, 255, 0), 2) cv2.imshow(leaf live, frame) if cv2.waitKey(1) 0xFF ord(q): break cap.release() cv2.destroyAllWindows()逻辑说明VideoCapture(0)打开第一个摄像头设备索引从 0 开始如果你的电脑接了外接摄像头且这个索引被占用改成 1 试试。cv2.waitKey(1)等待按键返回的是按键的 ASCII 码按 q 退出。predict函数直接复用 Leaf.py 里的识别逻辑但要注意它的输入参数是图片路径还是图片矩阵如果是路径这里要改成接收矩阵的版本否则每次都得写临时文件。改造时最容易翻车的一点是原来 Leaf.py 里的 predict 接受的是文件路径摄像头拿到的却是 numpy 矩阵。所以你需要给 predict 加一个分支判断输入类型def predict(img, is_pathTrue): if is_path: img safe_imread(img) # 之后的特征提取、分类逻辑保持不动最后一句实在的经验这套资源的价值不在识别的精度多高而在于把 UI、逻辑、演示三层搭清楚了你改造成本最低。从那以后我每次做图像分类桌面应用都会先去看它的 .ui 和主程序是否分离、图片读取是否防中文路径、耗时操作是否进了线程这三条全检查通过再谈加功能。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

第一次投期刊文章,科迅捷AI帮你把格式和逻辑都理顺

第一次投期刊文章,科迅捷AI帮你把格式和逻辑都理顺

专科生发表期刊文章,现在已经不是稀罕事:很多学校鼓励学生参加技能竞赛、发表论文,评奖学金、专升本、求职时都是加分项。但第一次投稿的人,几乎都会经历同一批困惑:不知道期刊怎么选、格式怎么调、稿子怎么改。这篇文…

2026/10/11 21:31:24 阅读更多 →
电商评论主题建模实战:LDA+情感耦合分析方法

电商评论主题建模实战:LDA+情感耦合分析方法

简介:本资源是一份面向NLP初学者与数据分析从业者的Python项目实战资料,聚焦电商评论场景下的主题建模与情感分析双重任务。通过LDA无监督学习挖掘评论潜在主题,并结合词典法实现细粒度情感倾向判断,助力企业从海量用户反馈中提炼…

2026/10/11 21:30:23 阅读更多 →
RackPeek rpk CLI命令完整手册:150+子命令快速掌握服务器、交换机、路由器的清单化管理

RackPeek rpk CLI命令完整手册:150+子命令快速掌握服务器、交换机、路由器的清单化管理

【免费下载链接】RackPeek CLI tool to discover, manage, and document your IT infrastructure and home lab. 项目地址: https://gitcode.com/gh_mirrors/ra/RackPeek 点击查看 免费下载 RackPeek 是一款面向家庭实验室(Home Lab)和小型 …

2026/10/11 21:30:23 阅读更多 →

最新新闻

PS5硬件扩展边界全解析:接口、协议与物理限制

PS5硬件扩展边界全解析:接口、协议与物理限制

项目标题“AnyPS5”目前在公开网络中无权威技术文档、官方产品发布或主流科技媒体报导支撑,亦未见于索尼互动娱乐(Sony Interactive Entertainment)任何已知产品线、开发代号或公开技术白皮书。经多平台语义检索与行业术语交叉验证&#xff0…

2026/10/11 23:15:10 阅读更多 →
YOLOv8+PaddleOCR车牌识别全链路工程实践

YOLOv8+PaddleOCR车牌识别全链路工程实践

简介:本资源是一套面向本科毕业设计与人工智能课程实践的智能车牌识别系统完整实现方案,聚焦图像识别与机器学习在智能交通场景中的落地应用。系统基于YOLOv8目标检测与PaddleOCR文字识别双引擎协同架构,覆盖车牌定位、字符分割、OCR识别全流…

2026/10/11 23:15:08 阅读更多 →
无电压传感器三相PWM整流器虚拟磁链定向仿真全解析

无电压传感器三相PWM整流器虚拟磁链定向仿真全解析

1. 这个项目到底在做什么说句实在话,三相PWM整流器的Simulink仿真,我在学生时代和工程实践里都反反复复碰过很多次。电压型PWM整流器这一块,最常见的控制策略是电压定向矢量控制(VOC),也就是把三相交流量通…

2026/10/11 23:15:06 阅读更多 →
RWKV7-G1 0.1B 推理模型发布:把纯血 RNN 塞进嵌入式设备的 TaoToken 实测路径

RWKV7-G1 0.1B 推理模型发布:把纯血 RNN 塞进嵌入式设备的 TaoToken 实测路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 23:15:04 阅读更多 →
RAP消息被截断排查:从50字符到220字符的嵌入式通信避坑指南

RAP消息被截断排查:从50字符到220字符的嵌入式通信避坑指南

上周我接到一个很典型的排查任务:现场反馈物联网关上报到平台的消息“丢尾”,一条本该有 80 个字符的 RAP 消息,对端只收到了 50 个字符。第一反应是 TCP 拆包没处理好,查了一圈才意识到,根本不是网络问题,…

2026/10/11 23:14:59 阅读更多 →
车载空调系统建模全流程:从热力学方程到量产图纸

车载空调系统建模全流程:从热力学方程到量产图纸

车载空调这东西,看着是个普普通通的汽车零部件,真要较真起来能让人头大一圈。热力学、流体力学、控制理论、结构设计全搅在一起,你光会仿真或者光会画图都不够,得从算法推导一路干到图纸落地才算是真本事。我这些年折腾车载空调建…

2026/10/11 23:13:59 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →