OpenCV车牌识别从定位到模板匹配:Python完整流水线实战
简介PythonOpenCV车牌自动识别实战项目面向计算机视觉初学者与智能交通开发者完整演示了从图像预处理、车牌定位、字符分割到模板匹配识别的全流程。资源包含2000个文件包括1999张JPG图片和1个Python源码文件压缩包大小仅12.37MB图片内既有汽车实拍样本也有按省份整理的字符匹配模板源码则覆盖灰度化、二值化、滤波去噪、边缘检测、轮廓查找及形态学处理等关键环节。项目现有3105人学习下载采用‘源码数据模板’一体化结构拿到后即可运行调试免去自行收集训练素材的麻烦。学习时可重点研究垂直投影法、滑动窗口法等字符分割思路以及利用模板库完成车牌号码自动匹配理解这些算法后不仅能快速复现识别Demo还可迁移至车辆追踪、违章查询、停车场管理等真实场景适合作为课程项目或工程落地的实用参考。1. 车牌自动识别不是黑匣子用 Python OpenCV 把手里的照片变成可复现的流水线停车场道闸拍下一张车尾照片你要在本地把它识别成“苏A·1B2C3”不改服务器、不调GPU、不碰深度学习框架——这正是 Python OpenCV 做车牌自动识别最经典的落地场景。标题里的“源码 数据 字符匹配模板”指向的是一条完整可复现的图像处理流水线定位车牌、分割字符、模板匹配识别。很多新手一上来就奔着 YOLO 去结果卡在标注和训练环境上而传统视觉方案在固定机位、标准号牌的工况下识别率和性价比都很能打。这篇文章就把这条流水线从头拆到尾适合正在做毕设、园区道闸验证或者单纯想用 OpenCV 入门图像处理的从业者。你会发现车牌识别最难的不是匹配是定位和分割。2. 车牌识别完整流程与 OpenCV 选型为什么模板匹配仍然够用2.1 四步流水线定位、矫正、分割、匹配车牌自动识别License Plate Recognition在传统视觉里的做法高度统一就是一条四步流水线定位从整张图中找到车牌区域这一步决定后续所有工作的上限。矫正把倾斜的车牌转正消除透视变形。分割把车牌上的字符逐个切出来。匹配把每个字符和模板库比对输出最可能的字符。每一步的输入输出和失败影响可以用一张表说清楚阶段输入输出常用算子失败后的表现定位原始 BGR 图车牌矩形框Canny、HSV、形态学框不住车牌或框住车身矫正矩形框内图像正视角车牌图minAreaRect、仿射变换字符倾斜分割和匹配全崩分割二值化车牌图7 个左右字符小图水平投影、垂直投影字符数不对粘连或断开匹配字符小图字符序列matchTemplate0 认成 O8 认成 B这套流程之所以能几十年长盛不衰是因为车牌本身是高度标准化的物体底色固定、字符字体固定、宽高比固定。后面所有参数都是围绕这些先验来设的。2.2 为什么在深度学习时代仍选 OpenCV 模板匹配做技术选型时被问最多的就是都 2024 年了为什么不用 YOLO CRNN我的回答很直接看你手头有什么。深度学习方案比如检测车牌后用 LSTM/CTC 做序列识别鲁棒性确实强倾斜、模糊、暗光都能扛但代价是标注成本、训练环境、GPU 预算和调参时间。对大多数固定机位场景比如小区出入口、园区道闸、高速匝道车牌的角度和距离基本被相机位置锁死光照用补光灯也能压住。这种情况下模板匹配的准确率能到 95% 以上单张图识别在毫秒级代码量几百行纯 CPU 就能跑。模板匹配不是黑匣子每一步都能可视化出了问题看得见摸得着这对学习和维护都友好。当然要明确它的边界车牌严重倾斜、字符模糊到人眼都难认、或者相机视角飘忽不定模板匹配就会翻车那种工况请老老实实上深度学习。选型从来不是越先进越好是越匹配场景越好。2.3 环境准备opencv-python 与 numpy 的版本陷阱这套方案的依赖极简只需要两个包。安装命令pip install opencv-python numpy装完先跑一句验证环境别急着写代码python -c import cv2, numpy; print(cv2.__version__, numpy.__version__)两个高频坑提前说。第一个ModuleNotFoundError: No module named opencv。这是新手最容易犯的错PyPI 上根本没有叫 opencv 的包正确包名是 opencv-python导入名才是 cv2。第二个如果你在网上下载的是 OpenCV 3.4.1 的 mingw64 预编译包注意它的 findContours 返回值和 4.x 不一样后面第 5 章会专门讲这个兼容写法。版本上我建议直接用 4.x 稳定版没必要纠结 3.4.1除非你要兼容某套老代码。另外注意 numpy 别装得太新OpenCV 的某些版本对 numpy 2.x 支持有 lag装完跑一遍验证命令就知道有没有问题。3. 车牌定位实战Canny 边缘检测与 HSV 颜色过滤的组合实现3.1 Canny 边缘检测与轮廓筛选定位车牌的思路有两个一是找“边缘密集的矩形区域”二是找“蓝色区域”。边缘法的好处是不依赖底色白牌、黄牌、蓝牌都吃得住。实现逻辑是先灰度化再用高斯模糊降噪Canny 提边缘最后按轮廓的几何特征筛出车牌。import cv2 import numpy as np img cv2.imread(car.jpg) gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) blur cv2.GaussianBlur(gray, (5, 5), 0) edges cv2.Canny(blur, 50, 150) contours, _ cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) candidates [] for cnt in contours: x, y, w, h cv2.boundingRect(cnt) area w * h ratio w / h if 2.5 ratio 5.5 and area 2000: candidates.append((x, y, w, h))Canny 的 50 和 150 是高低阈值灰度梯度超过 150 的必被认为是边缘低于 50 的丢弃。车牌字符与背景的对比度很强梯度值通常很高这个区间是经验值。轮廓筛选的两个参数是关键宽高比 2.5 到 5.5 对应真实车牌 440mm×140mm 约 3.14 的比例面积大于 2000 是为了过滤掉远处的树影、栏杆等小噪声。注意这里用的是 RETR_EXTERNAL 只取最外层轮廓避免车牌被内部字符轮廓干扰。3.2 HSV 颜色空间的蓝色车牌提取边缘检测找到的是“所有像车牌的东西”如果画面里还有招牌、灯箱就会误检。这时候 HSV 颜色过滤就是最好的第二道闸。为什么不用 BGR因为 RGB 对光照极其敏感同一个蓝色在阴影和强光下三个通道的值差别很大而 HSV 把色相 H 单独拎出来蓝色就是蓝色亮度变化主要影响 V 通道。hsv cv2.cvtColor(img, cv2.COLOR_BGR2HSV) mask cv2.inRange(hsv, (100, 80, 80), (124, 255, 255)) blue_edges cv2.bitwise_and(edges, edges, maskmask)这个 inRange 的下界和上界是标准蓝牌的 HSV 范围H 在 100 到 124 之间。S 下界 80 和 V 下界 80 是为了把灰色、白色的干扰排掉。之后把颜色 mask 和 Canny 边缘做按位与只保留“同时满足蓝色且在边缘上”的像素误检会大幅收敛。新能源车牌是渐变绿色H 在 35 到 77 之间做法一样改范围即可。这里有个经验夜间照片整体偏暗V 下界可以往下调到 50否则车牌区域很容易被整体滤掉。3.3 形态学闭运算与倾斜矫正连接断裂边缘的关键Canny 边缘在车牌区域往往是断的——字符笔画内部有大量空白边缘呈碎片状。直接对碎片找轮廓候选框会四分五裂。标准解法是用闭运算先膨胀再腐蚀把相邻边缘“焊”成一块。核的大小直接决定焊接效果我用长条矩形核匹配车牌比例kernel cv2.getStructuringElement(cv2.MORPH_RECT, (17, 9)) closed cv2.morphologyEx(blue_edges, cv2.MORPH_CLOSE, kernel)核宽度 17 比高度 9 大是因为车牌是横向长条横向连接的需求远大于纵向。如果你发现焊成一块的区域还是碎的把核加宽到 (25, 9)如果候选框大面积连成一片说明核太大缩回 (13, 9)。这一步我用的是闭运算而不是开运算因为开运算先腐蚀再膨胀是用来去噪点的会把细的边缘也吃干净。定位到轮廓后强烈建议补一个矫正步骤。车牌的 minAreaRect 能拿到旋转角度角度绝对值大于 5 度时做一次仿射变换否则后面分割出来的字符全是斜的。rect cv2.minAreaRect(cnt) angle rect[2] if angle -45: angle 90 angle else: angle angle M cv2.getRotationMatrix2D(rect[0], angle, 1.0) warped cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))注意 minAreaRect 的 angle 范围是 [-90, 0)对宽大于高的矩形返回的角度其实是“短边与水平线的夹角”所以要做一次正负转换这也是新人最容易踩的坑。矫正后再把候选区域截出来进入分割阶段。4. 字符分割与模板匹配从水平投影到 matchTemplate 参数调优4.1 水平投影切出车牌上下边界拿到定位框里的车牌图第一步是去掉上下边框。把灰度图二值化让字符变白、背景变黑然后逐行统计白色像素数。字符区域的白色像素必然远高于背景区域连续非零行的边界就是字符的上下边界。gray_plate cv2.cvtColor(plate_roi, cv2.COLOR_BGR2GRAY) _, binary cv2.threshold(gray_plate, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU) h_proj np.sum(binary, axis1) // 255 rows np.where(h_proj 0)[0] top, bottom rows[0], rows[-1] plate_crop binary[top:bottom, :]这里二值化用的是 OTSU 自动阈值省得手动调。THRESH_BINARY_INV 是因为白字在蓝底上反向后字符变成白色前景。如果车牌是黄底黑字要改成 THRESH_BINARY 不取反。水平投影的坑在于铆钉和上下边框也会产生非零行但它们的分布更靠边缘所以直接取第一个和最后一个非零行会带上边框。更稳的做法是找“连续非零行中最长的一段”。4.2 垂直投影按列切出单个字符上下边界确定后字符就只剩横向切分了。原理和水平投影一样逐列统计白色像素非零列的连续区间就是字符的左右边界。v_proj np.sum(plate_crop, axis0) // 255 segments [] in_char False start 0 for i, val in enumerate(v_proj): if val 0 and not in_char: start i in_char True elif val 0 and in_char: segments.append((start, i)) in_char False min_h bottom - top chars [] for seg in segments: w seg[1] - seg[0] if min_h * 0.3 w min_h * 0.8: chars.append((seg[0], top, seg[1], bottom))垂直投影的坑在第二个字符后面号牌中间有个分隔符“·”它也会形成一段很窄的非零投影。所以切出来之后必须做宽度过滤字符宽度大约是高度的 0.5 倍分隔符远窄于这个值。过滤条件里 min_h * 0.3 和 min_h * 0.8 就是按这个先验设的。如果字符粘连比如“8”中间笔画断开导致投影出现假间隔往往要靠形态学先闭运算把字符内部缺口补上再做投影。4.3 模板匹配构建字符模板库与 matchTemplate 用法分割完成后就是重头戏字符匹配。标题里的“字符匹配模板”说的就是这一步的核心资产——模板库。我的建议是从真实车牌上手动裁剪一套基准字符比用打印字体渲染靠谱得多因为拍摄到的字符经过镜头畸变和压缩字体细节和印刷体差别很大。模板库的目录结构一般是这样的templates/ ├── han/ # 省份简称如 京、苏、浙、粤 ├── letter/ # 字母 A-Z去掉 I 和 O └── digit/ # 数字 0-9每个模板先做统一的预处理灰度化、二值化、resize 到固定尺寸。匹配时用 cv2.matchTemplate 遍历所有模板取相似度最高的那个字符def preprocess_char(roi, size(24, 48)): gray cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY) th cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1] return cv2.resize(th, size, interpolationcv2.INTER_AREA) def match_char(char_roi, templates): char_gray preprocess_char(char_roi) best_score, best_label -1, None for label, tmpl in templates.items(): tmpl_gray preprocess_char(tmpl) res cv2.matchTemplate(char_gray, tmpl_gray, cv2.TM_CCOEFF_NORMED) _, max_val, _, _ cv2.minMaxLoc(res) if max_val best_score: best_score, best_label max_val, label return best_label, best_scoreTM_CCOEFF_NORMED 计算的是归一化相关系数结果范围在 [-1, 1]1 代表完全一致。它比 TM_SQDIFF 更适合这里因为 SQDIFF 对亮度差异敏感而 CCOEFF_NORMED 先做了均值归一化抗光照干扰能力强。匹配阈值我一般设在 0.6 左右低于这个值的结果标为“低置信度”而不是直接采用。还有一个容易忽略的细节把字符直接 resize 到固定尺寸会破坏“1”这种窄字符的比例导致它匹配到“7”或“I”。正确做法是按比例缩放后补边而不是暴力拉伸。5. 车牌识别避坑指南5 个高频翻车现场与修复手段5.1 现象定位框不住车牌框住了车身或路面原因HSV 颜色范围是死的光照是活的。白天阳光直射下蓝色车牌反光发白S 通道掉得很低低于 inRange 下界 80 就被滤掉了夜间整体 V 值偏低车牌区域也过不了 V 下界的阈值。这是整个 pipeline 里翻车率最高的一步。解决先对图像做直方图均衡化提升对比度再把 S 和 V 的下界放宽。我把 S 下界从 80 降到 50V 已经是动态的——取全图 V 通道的均值乘 0.8 作为下界。优先用边缘检测的结果做候选HSV 只做“打分”而不是“硬过滤”两个条件同时满足才保留避免单一通道失效。gray_eq cv2.equalizeHist(gray) edges cv2.Canny(cv2.GaussianBlur(gray_eq, (5, 5), 0), 50, 150)5.2 现象findContours 报错 not enough values to unpack原因OpenCV 3.x 和 4.x 的 findContours 返回值结构变了。3.4.1 返回三个值image, contours, hierarchy4.x 返回两个contours, hierarchy。如果你下载的是 mingw64 版本的 3.4.1或者公司老环境锁了版本代码直接崩。报错信息我闭着眼都能背出来ValueError: not enough values to unpack (expected 3, got 2)。解决统一用两值接收把第一位的图像丢弃。这样 3.4.1 和 4.x 都兼容。contours, _ cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)5.3 现象分割出来 6 个或 8 个字符不是标准 7 个原因上下边框没去干净铆钉被当成一个字符或者“·”分隔符宽度过滤没拦住也可能是 1 和 7 之间有细微投影断点。字符数不对后面的匹配全是废的。解决在水平投影阶段就用“最长连续非零段”而不是“第一个到最后一个非零行”把边框和铆钉的零散行排除。垂直投影后按宽度中位数做过滤太窄的段直接丢弃。如果某一段宽度明显大于正常字符说明两个字粘连了用中点拆成两段。每一步都把中间结果保存成图片看一遍这比任何调试技巧都管用。5.4 现象0 被识别成 O8 被识别成 B1 被识别成 I原因模板库里的字符字体和实际车牌字体不一致。车牌字体是专门设计的数字 0 中间没有缺口字母 O 是正圆而很多模板用的是 Arial 或宋体差别一目了然。另外字符 resize 拉伸也会破坏比例。解决模板一定从同一批车牌照片里裁剪别用系统字体渲染。resize 时保持宽高比不要统一拉伸。此外加一个后验约束车牌第二位一定是字母倒数第二位一定是数字如果匹配结果违反这个规则直接标记为低置信度宁可拒识也不要错识。这个行业里拒识比误识好处理得多。5.5 现象模板匹配分数很高但整牌结果还是错原因定位框带的角度没矫正字符轻微倾斜时单个字符匹配可能侥幸通过但到了后期拼接和校验一定出问题。这个玄学阶段最容易让人怀疑人生——每一段看起来都对最终结果就是不对。解决在分割之前强制过一遍旋转矫正。用 minAreaRect 拿到角度用仿射变换转正。前面 3.3 节那几行代码是我踩了几天坑换来的别省。转正之后再走分割和匹配字符角度一致了模板匹配的分数会稳定很多。6. 识别率验收技巧用置信度阈值与长度约束校准结果跑通流程只算完成一半另一半是让结果稳定可复现。我给自己的硬性要求是每次改动算法后必须用固定测试集跑一遍算准确率而不是拿两三张图肉眼看着说“没问题”。测试集的命名规则就用文件名存真实车牌比如苏A12345_001.jpg批量脚本自动比对import os test_dir test_imgs total, correct 0, 0 for fname in os.listdir(test_dir): if not fname.endswith(.jpg): continue label fname.split(_)[0] result recognize(os.path.join(test_dir, fname)) total 1 if result label: correct 1 else: print(f[FAIL] {fname}: 识别 {result} ! 真实 {label}) print(f整牌准确率: {correct / total:.2%} ({correct}/{total}))这种逐样本打印失败原因的习惯帮我避掉了无数次“凭感觉调参”的无效劳动。定位挂了的调第 3 章的 HSV 范围分割挂了的调第 4 章的投影过滤宽度匹配挂了的调模板库的字体来源和阈值。每改一次就跑一遍准确率不升的改动直接回滚。另一个有用的约束我在 5.4 提过加字符位置合法性校验。车牌长度是 7 位新能源 8 位倒数第二位是数字第二位是字母不满足就拒识。这套逻辑加在识别函数尾部能砍掉一大半误识别输出。最后说一个我的血泪教训第一次做车牌照抄网上代码没有模板库直接把整张车牌图拿去 matchTemplate结果当然是全军覆没。后来才明白模板匹配的对象是分割后的单个字符而不是整张车牌。车牌识别这个方向没有黑匣子每一个环节都看得见摸得着从定位到分割到匹配一步步把中间结果输出成图片检查准确率过了 90% 再谈落地。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

DeepLabv3+图像分割实战:从Pytorch环境搭建到Cityscapes训练避坑

DeepLabv3+图像分割实战:从Pytorch环境搭建到Cityscapes训练避坑

简介:面向图像分割学习者和算法工程师的DeepLabv3实战资源,基于Pytorch在VOC与Cityscapes两个公开数据集上完成训练、验证与推理,覆盖数据加载、数据增强、网络定义、损失函数、学习率策略、评估指标和可视化等关键环节,适合快速上…

2026/10/13 12:22:21 阅读更多 →
第13章:新增后端设备:流程与关键点

第13章:新增后端设备:流程与关键点

本文梳理在 virglrenderer 中新增一个后端设备(backend device)的整体流程与关键设计点,示例参考上游的 DRM native context 与 HSAKMT(ROCm/HSA)两组补丁。 13.1 总体架构 13.1.1 插件式设计 virglrenderer 采用插件式架构:每类设备都是一个自包含模块,通过一组明确定…

2026/10/12 0:55:56 阅读更多 →
航拍路面病害识别数据集:YOLO与Faster R-CNN实战训练指南

航拍路面病害识别数据集:YOLO与Faster R-CNN实战训练指南

简介:这是一份面向深度学习目标检测方向的航拍路面病害识别数据集,适合从事缺陷检测、智慧交通与道路巡检研究的开发者及学生使用,可支撑YOLO系列、Faster R-CNN、SSD等主流模型的训练与验证。数据集共包含3151张航拍图像,覆盖纵向…

2026/10/13 2:21:23 阅读更多 →

最新新闻

关系模型实战指南:从二维表到业务稳定性的底层逻辑

关系模型实战指南:从二维表到业务稳定性的底层逻辑

1. 这不是教科书里的“关系”,而是你每天都在用的数据组织逻辑“关系模型的基本概念”——看到这八个字,很多人第一反应是大学数据库课上那个被粉笔灰笼罩的下午,黑板上写着“实体、属性、域、键”,讲台下有人偷偷刷手机&#xff…

2026/10/13 12:22:17 阅读更多 →
Qt国际化翻译完整实践:从tr()到动态语言切换

Qt国际化翻译完整实践:从tr()到动态语言切换

做Qt开发这么多年,遇到最多的问题不是功能写不出来,而是功能做完以后客户说看不懂。于是QT国际化翻译就成了绕不开的环节。表面上看,这事只是把界面文字换成英文、日文,真正做起来却涉及源码扫描、翻译文件管理、运行时加载、动态…

2026/10/13 12:22:17 阅读更多 →
华为+红帽双赛道:2026网工转型的破局之道

华为+红帽双赛道:2026网工转型的破局之道

1. 为什么2026年网工转型,我建议你押注"华为红帽"双赛道最近不少朋友私信问我关于2026年转行网络工程师(网工)的事,大家的焦虑点很一致:AI工具越来越强,初中级网工的活是不是要被替代&#xff1f…

2026/10/13 12:22:17 阅读更多 →
Modern.js 服务端编译核心 @modern-js/server-utils:TypeScript 编译、别名解析与原生 ESM 支持的源码级解析

Modern.js 服务端编译核心 @modern-js/server-utils:TypeScript 编译、别名解析与原生 ESM 支持的源码级解析

前端后端Web框架 【免费下载链接】modern.js A progressive web framework based on React and Rsbuild. 项目地址: https://gitcode.com/gh_mirrors/mo/modern.js 点击查看 免费下载 本文围绕 packages/server/utils/CHANGELOG.md 记录的能力演进,结合…

2026/10/13 12:22:17 阅读更多 →
基于SpringBoot+Vue的派出所健康档案管理系统设计与实现

基于SpringBoot+Vue的派出所健康档案管理系统设计与实现

选题背景 社会对公共安全的重视,派出所民警的工作压力日益增大,其健康状况备受关注。早期的健康档案管理方式效率低下,难以实现信息的实时共享和动态更新。本系统采用 Spring Boot 框架,结合前端技术和数据库技术,构建…

2026/10/13 12:22:17 阅读更多 →
EmbeddingGemma 2本地多模态嵌入模型部署与向量检索实战

EmbeddingGemma 2本地多模态嵌入模型部署与向量检索实战

1. 这个模型到底是什么:先把它的定位弄清楚拿到"EmbeddingGemma 2"这个名字,第一反应就是:这是个嵌入模型,740M参数规模,多模态,而且主打本地推理。这几个关键词放在一起,意味着它并不…

2026/10/13 12:21:16 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →