E-prime实验设计常用技术样例包:从结构树到InLine脚本的避坑指南
简介这份资源是E-prime系列课程的第五讲配套样例包面向心理学实验编程初学者与需要进阶实验设计技术的研究人员帮助解决从基础操作迈向复杂实验范式的实际问题。E-Prime由卡内基梅隆大学与匹兹堡大学学习研究与发展中心、美国PST公司联合开发是计算机化行为研究的常用实验生成系统。压缩包共46个文件约4.2MB包含es3与ebs3实验源文件、wndpos窗口位置文件、edat3数据文件、xml实验顾问报告、xsl样式表、txt说明及jpg示例图片覆盖移动窗口技术、多字符反应、随机方位设计、同种材料不连续呈现、鼠标选择、lnLine刺激反应时记录、N-back工作记忆与双任务等典型实验设计。已有623人学习下载读者可参照完整样例复现实验流程理解窗口控制、刺激呈现与反应记录等关键环节并借助实验顾问报告排查设计问题适合作为课程练习与自主实验开发的参考模板。1. 从一份 E-prime 实验设计样例包说起它到底能帮你省掉多少试错如果你正在做心理学行为实验大概率绕不开 E-prime。它不像 Python 那样灵活但胜在时间精度稳、和硬件响应盒对接成熟很多实验室的经典范式都是用它搭出来的。问题是E-prime 的学习曲线有点怪——入门不难可一旦涉及复杂实验设计比如多条件混合、刺激随机呈现、反应时精确记录、与脑电或眼动设备同步打码新手很容易卡在某个环节反复翻车。这份「E-prime系列课程5 E-prime实验设计常用技术-样例.zip」就是冲着这些卡点来的。它不是一个空泛的教程文档而是一组可以直接打开、运行、拆解的实验设计样例文件覆盖了行为实验里最常遇到的几种技术场景。适合谁刚接触 E-prime 但已经能跑通简单 Stroop 或 Go/No-go 的研究生以及需要快速搭建实验框架、不想从零调试的从业者。你拿到手的第一件事不是通读而是先跑通一个样例再对照自己的实验需求改参数。2. E-prime 实验设计的核心机制从 List 到 Procedure 的落地逻辑2.1 为什么 E-prime 的「结构树」决定了实验能不能跑对E-prime 的实验逻辑不是写代码而是搭结构树。最顶层是 SessionProc往下是 Block再往下是 TrialTrial 里面才是具体的刺激呈现和反应收集。很多人第一次翻车是因为把该放在 Trial 层的控件放到了 Block 层结果刺激只呈现一次就没了或者反应数据全部堆在同一个时间戳上。样例包里每个实验都保留了完整的结构树截图和对应的 .es 文件你可以直接看到 List 控件是怎么嵌套的。List 在 E-prime 里承担的是「条件循环」的角色它决定了哪些变量在每次 Trial 中变化、变化的顺序是随机还是固定。常见做法是把自变量水平写进 List 的列然后在 Trial 的控件里用[变量名]引用。比如[Stimulus]引用图片路径[CorrectAnswer]引用正确答案。这样改实验条件时只需要改 List 里的表格不用动控件属性。2.2 样例包里的三个典型设计模式拆解打开样例包你会看到至少三种设计模式的 .es 文件。第一种是「单因素多水平随机呈现」适合启动效应或情绪图片评定。它的 List 只有一列但设置了随机化选项并且用 Nested List 把刺激和问题分开避免随机化时把问题和图片的对应关系打乱。第二种是「混合设计组间变量 组内变量」这种设计在 E-prime 里需要两个 List 嵌套外层 List 放组间条件内层 List 放组内条件并且要在 Experiment Object 的属性里设置好被试编号的分配逻辑。第三种是「反应时收集与正确率反馈」这个样例里用到了 InLine 脚本在 Trial 结束后判断反应是否正确并给出即时反馈。下面这段 InLine 代码是从样例里摘出来的作用是读取被试反应并和正确答案比对 在 Trial 的 InLine 控件中运行 获取当前 Trial 的正确答案和实际反应 Dim correctAns As String Dim actualResp As String correctAns c.GetAttrib(CorrectAnswer) 从 List 中读取正确答案 actualResp c.GetAttrib(Response) 获取被试按键反应 判断正误并写入自定义属性供后续反馈控件使用 If actualResp correctAns Then c.SetAttrib Feedback, 正确 c.SetAttrib IsCorrect, 1 Else c.SetAttrib Feedback, 错误 c.SetAttrib IsCorrect, 0 End If这段代码的逻辑很直接c.GetAttrib是 E-prime 里读取当前 Trial 属性的标准方法CorrectAnswer和Response这两个属性名必须和 List 里的列名完全一致大小写敏感。c.SetAttrib则是把判断结果写回去这样后面的 FeedbackDisplay 控件就可以用[Feedback]来显示文字。参数上唯一要注意的是Response属性只有在反应控件启用了数据记录后才会存在如果你在反应控件的属性里没勾选「Collect Response」这里读出来就是空字符串反馈会永远显示错误。样例包里每个 InLine 脚本都配了注释告诉你哪些属性名是必须和 List 对齐的。2.3 刺激呈现的时间精度控制Duration 和 PreRelease 怎么设E-prime 的时间精度是它的卖点但前提是你得把 Duration 和 PreRelease 设对。Duration 决定刺激在屏幕上停留多久PreRelease 决定反应控件提前多久开始收集反应。常见错误是把图片刺激的 Duration 设成 0以为这样就是「直到被试按键才消失」实际上 Duration 为 0 在 E-prime 里表示「立即消失」而不是「无限等待」。正确做法是把 Duration 设成一个足够大的值比如 5000 毫秒然后在反应控件里设置「Terminate on Response」这样被试按键后 Trial 会提前结束。样例包里有一个专门的时间参数对照表列出了不同刺激类型推荐的 Duration 和 PreRelease 组合刺激类型Duration (ms)PreRelease (ms)反应控件设置快速掩蔽图片170不收集反应情绪图片评定3000200Terminate on Response听觉刺激1000100不收集反应视频片段由文件决定500允许中途按键PreRelease 的作用是让反应控件在刺激消失前就开始「监听」按键避免因为刷新率导致的几毫秒延迟。但 PreRelease 不能设得太大否则被试可能在刺激还没出现时就误触。一般做法是设成 100 到 200 毫秒具体值要根据你的显示器和实验要求微调。样例包里有一个校准实验专门用来测你当前设备的实际延迟建议在正式实验前跑一遍。3. 把样例跑起来从解压到数据导出的完整操作链3.1 环境准备与文件结构说明拿到压缩包后先别急着双击 .es 文件。E-prime 对文件路径很敏感如果解压后的文件夹里有中文路径或者空格某些控件会找不到刺激文件。我一般会先把整个包解压到一个纯英文、无空格的路径下比如D:\Eprime_Samples\。解压后你会看到几个子文件夹.es文件放在根目录Stimuli文件夹里是图片和音频素材Data文件夹是空的用来存跑完的数据。还有一个ReadMe.txt里面写了每个样例对应的 E-prime 版本要求。注意E-prime 2.0 和 3.0 的文件格式不完全兼容如果你用的是 3.0打开 2.0 的 .es 文件时可能会提示「实验结构需要升级」点确认就行但升级后最好另存一份别覆盖原文件。3.2 逐步运行第一个样例以「情绪图片评定」为例打开EmotionRating.es你会看到结构树里有一个 SessionProc下面挂了一个 BlockBlock 里有一个 Trial。先别改任何东西直接按 F7 运行。E-prime 会弹出一个对话框让你输入被试编号随便填一个数字比如 001。然后实验开始屏幕上会依次呈现图片每张图片下面有一个 1 到 9 的评分条你按数字键反应后自动跳下一张。跑完一轮大概两分钟。结束后数据会自动保存在Data文件夹里文件名格式是被试编号_实验名_日期.edat2。用 E-prime 自带的 E-DataAid 打开这个文件你会看到每一行是一个 Trial列名对应 List 里的变量和反应控件记录的属性。重点看Response列和RT列RT是反应时单位是毫秒精确到小数点后一位。如果RT列全是 0说明反应控件没有正确记录回去检查反应控件的「Duration」和「End Action」设置。3.3 修改 List 来适配你自己的实验条件假设你要把评分范围从 1-9 改成 1-7并且把图片呈现时间从 3000 毫秒改成 2000 毫秒。操作步骤是在结构树里双击 Trial 里的 List 控件找到Stimulus列和CorrectAnswer列。Stimulus列里是图片文件名你不用动。CorrectAnswer列在评分实验里其实没用到可以忽略。要改呈现时间得去 Trial 里双击图片呈现控件通常叫ImageDisplay在 Duration 那一栏把 3000 改成 2000。改完后按 F7 重新运行确认时间变化生效。如果你要增加新的图片条件直接在 List 里新增一行把图片文件名填进去确保图片文件已经放在Stimuli文件夹里。List 的行数决定了 Trial 的循环次数E-prime 会自动按行遍历。常见坑是新增行后忘了在 List 属性里勾选「Randomize」结果新条件总是排在最后被试容易察觉规律。 如果你想在实验开始前动态生成 List 内容可以用 InLine 脚本 这段代码放在 SessionProc 开头的 InLine 里 Dim i As Integer Dim totalTrials As Integer totalTrials 40 总试次数 清空 List 并重新填充 c.List(TrialList).Clear For i 1 To totalTrials c.List(TrialList).Add c.List(TrialList).SetAttrib i, Stimulus, img i .jpg c.List(TrialList).SetAttrib i, CorrectAnswer, 1 Next i这段脚本演示了如何在运行时动态构建 List。c.List(TrialList)里的TrialList必须和结构树里 List 控件的名称完全一致。Clear会清空所有已有行Add新增一行SetAttrib设置该行某一列的值。参数上要注意SetAttrib的第一个参数是行号从 1 开始不是 0。如果你在 List 属性里设置了随机化动态添加的行也会参与随机。这种做法的好处是试次数可以按被试编号动态变化比如奇数号被试跑 40 试次偶数号跑 60 试次适合被试间平衡设计。4. 避坑与排查E-prime 实验设计里最容易翻车的五个地方4.1 刺激文件路径报错现象是运行到一半提示「Cannot find file」这是最高频的翻车点。现象很明确实验跑到某个 Trial 时突然弹窗说找不到某个图片或音频文件然后实验中断。原因通常有三个一是 List 里的文件名和实际文件名大小写不一致Windows 不区分大小写但 E-prime 在某些版本里区分二是文件路径里包含了中文或空格E-prime 的底层调用对非 ASCII 字符支持不好三是刺激文件被放在了Stimuli文件夹的子文件夹里但 List 里只写了文件名没写相对路径。解决办法把所有刺激文件放在和 .es 文件同级的Stimuli文件夹里文件名全部用小写英文和数字List 里只写文件名加扩展名比如face01.jpg。如果必须用子文件夹List 里要写subfolder\face01.jpg用反斜杠。4.2 反应时数据全为 0现象是 E-DataAid 里 RT 列没有有效值跑完实验兴冲冲打开数据发现 RT 列全是 0 或者空白。原因一般是反应控件的属性没设对。E-prime 里收集反应时必须确保反应控件通常是KeyboardInput或ResponseBox的「Duration」大于 0并且「End Action」设置为「Terminate」或「Jump」。如果 Duration 是 0控件根本不启动自然没有反应时。另一个原因是反应控件的「Data Logging」没勾选「Collect RT」。解决步骤双击反应控件在「Duration」里填一个大于刺激呈现时间的值比如 5000在「End Action」里选「Terminate」在「Data Logging」里勾选「Collect Response」和「Collect RT」。改完后跑一个被试确认 RT 列有数值。4.3 List 随机化不生效现象是每个被试看到的顺序都一样明明在 List 属性里勾了「Randomize」但每个被试跑的顺序完全一致。原因通常是 List 的随机化设置被上层结构覆盖了。E-prime 里如果 Block 层也设置了随机化或者 Trial 层用了 Nested List随机化的层级会冲突。常见做法是只在最内层的 List 上勾选随机化外层 List 保持「Sequential」或「Random」但不要同时勾。另一个原因是 List 的行数太少比如只有 4 行随机化后看起来还是差不多。解决办法检查结构树里每一层 List 的「Selection」属性确保只有一层是「Random」如果用了 Nested List把随机化放在内层 List 上外层用「Sequential」按顺序调用内层。4.4 与外部设备同步失败现象是脑电或眼动设备收不到打码信号做脑电或眼动实验时E-prime 需要通过并口或串口发送打码信号。常见翻车是设备端收不到信号或者信号延迟很大。原因可能是并口地址设错了或者 E-prime 的 InLine 脚本里发送信号的时机不对。E-prime 里发送并口信号的标准做法是在刺激呈现前用WritePort函数比如WritePort H378, 1其中H378是并口地址1是打码值。注意WritePort是立即执行的如果你把它放在图片呈现控件之前信号会比图片早几毫秒放在之后又会晚几毫秒。精确同步的做法是用OnsetTime属性在图片呈现后的 InLine 里读取ImageDisplay.OnsetTime然后根据这个时间戳来对齐设备数据。样例包里有一个并口打码的示例但需要你根据自己设备的地址改H378这个值。4.5 数据文件合并出错现象是 E-DataAid 合并多个被试数据时列错位跑完多个被试后需要用 E-DataAid 的「Merge」功能把数据合并成一个文件。常见问题是合并后列名对不上比如被试 A 的数据里Response列在第 5 列被试 B 的数据里Response列跑到了第 7 列。原因是不同被试跑的 List 结构有细微差异比如某个被试的 List 里多了一列没用的变量。解决办法在正式实验前用一个被试跑一遍完整流程确认数据结构稳定合并时用 E-DataAid 的「Merge by Subject」功能而不是直接复制粘贴如果列错位已经发生可以在 E-DataAid 里手动调整列顺序或者用 Excel 的 VLOOKUP 按被试编号和 Trial 编号重新对齐。5. 进阶技巧用 InLine 脚本把 E-prime 的实验控制能力拉满5.1 动态调整试次间隔根据被试反应时自适应E-prime 默认的试次间隔是固定的但有些实验设计需要根据被试上一试次的反应时来动态调整下一试次的等待时间。比如在疲劳研究中如果被试反应变慢就延长间隔让他休息。实现方法是在 Trial 的 InLine 里读取上一试次的 RT然后设置下一个 Trial 的PreRelease或直接用Wait函数。下面这段代码演示了如何根据 RT 动态设置 ISI 放在 Trial 结束后的 InLine 中 Dim lastRT As Long Dim isi As Long lastRT c.GetAttrib(RT) 获取当前试次反应时 If lastRT 1000 Then isi 800 反应慢延长间隔 Else isi 400 反应快缩短间隔 End If 用 Wait 函数实现动态间隔 Dim startTime As Long startTime Clock.Read Do While Clock.Read - startTime isi 空循环等待 Loop这段代码的逻辑是c.GetAttrib(RT)读取当前 Trial 的反应时单位毫秒。如果大于 1000 毫秒就把 ISI 设为 800 毫秒否则 400 毫秒。Clock.Read是 E-prime 里的高精度计时函数返回毫秒级时间戳。Do While循环用来消耗时间直到达到设定的 ISI。参数上要注意Clock.Read的精度受系统时钟影响一般在 1 到 15 毫秒之间波动如果实验对 ISI 精度要求极高建议用Wait控件的Duration属性而不是空循环。这种动态调整的做法在样例包的「自适应实验」文件夹里有完整示例。5.2 条件分支跳转根据被试反应跳转到不同 Trial有些实验需要在被试反应后决定下一个 Trial 是什么比如错误后呈现反馈正确后直接进入下一试次。E-prime 里可以用Goto语句实现条件跳转。下面这段代码放在 Trial 的 InLine 里根据反应正误跳转到不同的 Label 根据反应正误跳转 Dim isCorrect As Integer isCorrect c.GetAttrib(IsCorrect) If isCorrect 1 Then 正确跳转到下一个 Trial Goto NextTrial Else 错误跳转到反馈 Label Goto ErrorFeedback End If 在结构树里需要定义 Label 控件 NextTrial 和 ErrorFeedback 是 Label 的名称Goto语句在 E-prime 里跳转的目标必须是结构树里已经存在的 Label 控件。IsCorrect是前面 InLine 里写入的自定义属性。这种跳转机制适合做「错误后减慢」范式或者「追踪训练」范式。注意Goto不能跨 Block 跳转只能在同一个 Block 内的 Label 之间跳。如果你需要跨 Block 跳转得用c.SetAttrib设置一个全局变量然后在 SessionProc 层用 InLine 判断。5.3 数据预处理在 E-prime 里直接算好指标再导出E-prime 的 .edat2 文件导出后很多人还要在 Excel 或 R 里做一堆预处理。其实可以在实验结束的 InLine 里直接算好一些常用指标比如正确率、平均反应时、剔除极端值后的均值。下面这段代码演示了如何在 SessionProc 末尾汇总数据 放在 SessionProc 最后的 InLine 中 Dim totalTrials As Integer Dim correctTrials As Integer Dim sumRT As Long Dim meanRT As Double Dim i As Integer totalTrials c.GetAttrib(TotalTrials) 从 List 行数获取 correctTrials 0 sumRT 0 遍历所有 Trial 的数据 For i 1 To totalTrials If c.GetAttrib(IsCorrect i) 1 Then correctTrials correctTrials 1 sumRT sumRT c.GetAttrib(RT i) End If Next i 计算正确率和平均反应时 If correctTrials 0 Then meanRT sumRT / correctTrials Else meanRT 0 End If 把汇总结果写入一个文本文件 Dim fso As Object Set fso CreateObject(Scripting.FileSystemObject) Dim f As Object Set f fso.CreateTextFile(Data\summary_ c.GetAttrib(Subject) .txt, True) f.WriteLine Subject: c.GetAttrib(Subject) f.WriteLine Accuracy: correctTrials / totalTrials f.WriteLine MeanRT: meanRT f.Close这段代码用Scripting.FileSystemObject在Data文件夹里生成一个汇总文本文件。c.GetAttrib(IsCorrect i)这种写法要求你在每个 Trial 的 InLine 里把IsCorrect和RT写入了全局属性并且属性名带上了 Trial 序号。参数上要注意totalTrials必须和实际跑完的 Trial 数一致如果实验中途被试退出这个值会偏大导致遍历时读到空值。稳妥做法是在每个 Trial 结束时用c.SetAttrib TotalTrials, c.GetAttrib(TotalTrials) 1动态累加。这种在 E-prime 内部做预处理的方式能省掉导出后至少一半的清洗时间。我自己的习惯是每次搭完新实验先跑一个被试把汇总文件打开看一眼确认正确率和平均反应时在合理范围内再开始正式收数据。从那以后我再也没出现过数据导出后才发现反应时全为 0 的情况。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

DELL Z9100交换机接口拆分1分4配置:100G转4×25G实操指南

DELL Z9100交换机接口拆分1分4配置:100G转4×25G实操指南

DELL Z9100交换机配置接口拆分1分4做数据中心运维这些年,接口拆分(Breakout)可以说是最常被问到、也最容易踩坑的一项操作。尤其像DELL Z9100这种高密度100G交换机,遇到接入侧设备端口数量不够、又在预算上卡得死死的时候&#xf…

2026/10/18 15:10:57 阅读更多 →
碎片文字如何高效生成图片?从拆解到调参的完整实操

碎片文字如何高效生成图片?从拆解到调参的完整实操

做内容这几年,我电脑里堆满了各种碎片文字:灵感备注、产品卖点、选题大纲、聊天记录里随手记的几句话。每逢要配图、做封面或者给客户出概念草图的时候,这些碎片根本派不上用场——重新找人画太慢,自己动手画太丑,用图…

2026/10/18 15:10:57 阅读更多 →
OHIF Viewer 部署指南:从本地开发到生产上线的完整路径

OHIF Viewer 部署指南:从本地开发到生产上线的完整路径

OHIF Viewer 部署指南:从本地开发到生产上线的完整路径 【免费下载链接】Viewers OHIF zero-footprint DICOM viewer and oncology specific Lesion Tracker, plus shared extension packages 项目地址: https://gitcode.com/GitHub_Trending/vi/Viewers 一句…

2026/10/18 15:09:57 阅读更多 →

最新新闻

从 APK/PCK 恢复完整 Godot 项目:gdsdecomp 上手与实战指南

从 APK/PCK 恢复完整 Godot 项目:gdsdecomp 上手与实战指南

从 APK/PCK 恢复完整 Godot 项目:gdsdecomp 上手与实战指南 【免费下载链接】gdsdecomp Godot reverse engineering tools 项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp gdsdecomp(Godot RE Tools)是一个面向 Godot 引…

2026/10/18 16:15:27 阅读更多 →
Convert to it PriorityQueue 拆解

Convert to it PriorityQueue 拆解

Convert to it PriorityQueue 拆解 【免费下载链接】convert Truly universal online file converter 项目地址: https://gitcode.com/GitHub_Trending/convert7/convert Convert to it 敢承诺"任何格式转任何格式",底气来自在格式图上做路径搜索。…

2026/10/18 16:15:27 阅读更多 →
Teamcenter管理员运维地图:备份、日志、权限与升级实战

Teamcenter管理员运维地图:备份、日志、权限与升级实战

简介:这份西门子Teamcenter管理员操作手册,面向TC系统管理员及PLM项目实施人员,系统梳理Teamcenter 11/12/13环境下的配置、管理与维护方法。手册从管理员职责切入,重点展开服务器端操作:业务建模器的模板项目创建与部…

2026/10/18 16:15:27 阅读更多 →
Pandas DataFrame排序与排名:sort_values和rank的实战区别与用法

Pandas DataFrame排序与排名:sort_values和rank的实战区别与用法

在数据分析里,排序和排名几乎是每天都要碰的操作,但很多人用着用着就混了。DataFrame的sort_values和rank,看名字都带“排”,实际干的活完全不同:一个是把整张表重新摆顺序,另一个是给每个数据打分定名次。…

2026/10/18 16:15:27 阅读更多 →
MCP异步处理破解AI读取千万级Excel超时难题

MCP异步处理破解AI读取千万级Excel超时难题

遇到一个千万级的 Excel,直接丢给 AI 分析,大概率是等到天荒地老之后,换来一句冷冰冰的“读取超时”。这个坑我踩过不止一次。后来我把方案换成了基于 MCP 的异步处理,把“一次性读完整张表”改成“提交任务、轮询进度、分批拿结果…

2026/10/18 16:15:27 阅读更多 →
医疗知识图谱问答系统开发实战:数据清洗、Neo4j入库与Flask部署

医疗知识图谱问答系统开发实战:数据清洗、Neo4j入库与Flask部署

简介:一套基于Python的医疗知识图谱知识问答系统课程设计资源包,适合知识图谱与问答方向的初学者,帮助理解医疗实体关系建模、规则式对话流程及问句查询解析。压缩包共58个文件,约20MB,核心内容涵盖设计报告、源代码、…

2026/10/18 16:14:26 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →