使用Cartool工具包分析EEG源成像

2023-11-16

使用Cartool工具包分析EEG源成像

在这里插入图片描述
在这里插入图片描述
Hello,大家好!
这里是行上行下,我是喵君姐姐~

脑电图(EEG)是测量人脑神经元活动最原始的技术之一,特别是在临床诊断中具有无可争议的价值。它能够识别癫痫和睡眠障碍,以及对感觉传导通路功能障碍进行评估。然而,EEG的缺点主要在于其空间分辨率较差,这使得在推断头皮上产生的神经元活动的大脑区域位置时较为困难。

因此,研究者们旨在找到一个更精确、更可靠的解决方案以定位EEG活动产生位置,并能够结合精确的头部解剖信息和复杂的源定位算法,将其转换为一个真正的神经成像模式的高密度脑电图系统。

本期,我们就来介绍将采集到的EEG信号转换为三维神经活动成像时的一系列步骤。图1列举了EEG源定位中常用的一些软件和安装包。这里我们使用的是一款独立免费的软件:Cartool

在这里插入图片描述

图 1 EEG源定位中软件常用与安装包

PS:以下一些翻译可能还有待商榷,欢迎大家留言批评指正!

1 基本要求

1.1 EEG预处理 (EEG Pre-processing)

原始EEG数据受到许多非生理源(电源线、不良电极接触等)和生理源(心跳、肌肉活动、出汗、运动等)的伪迹污染。由于数据集较大,我们通常会采取自动对伪迹进行识别和消除的方式。但由于造成伪迹的因素较多且不确定,因此在自动识别之后还需要人工检查。下面我们就来主要地介绍EEG预处理的一系列步骤。

1.2 时间过滤 (Temporal Filtering)

首先,我们需要使用时间滤波器(Temporal Filtering),以去除数据中那些被认为是非生理源或与当前研究无关的频率。在Cartool中,我们采用的是2阶无限脉冲响应(IIR)巴特沃思滤波器。

它的优点在于具有最佳的平通带响应,能够限制局部最大值位置上出现伪迹。另外,巴特沃斯低通和高通滤波器都能够消除相位移动,这确保了局部最大值保持在合理的范围,而与它们的频率无关。

1.3 下采样(降低采样率) (Down-Sampling)

滤波后,我们便可以对数据进行下采样,即降低采样率。它可以通过减少样本量来降低后续处理所需的内存,而不会丢失任何信息。奈奎斯特定理要求向下采样不低于最高剩余频率(highest remaining frequency)的两倍。

然而,在实际中,由于滤波器的截止频率不可能完全清晰,为了保持一些额外的时间分辨率,最终的采样频率应该选择在最高剩余频率的4倍左右。在Cartool中,下采样主要是级联积分梳状(CIC)滤波器来完成的,它在离线状态下也能用于计算。

1.4 电极插值与ICA (Electrode Interpolation and ICA)

独立成分分析(ICA)一般用于检测和校正伪迹,特别是眼球运动、眨眼和心跳伪迹等。它能够计算出反映特定事件的独立成分以及伪迹,从而对伪迹进行排除。

在Cartool中,数据检测是半自动的。我们可以检测出明显偏离平均振幅的电极。这些电极可能是由于接触不良而导致的。因此,在计算ICA时要对这些电极进行标记并忽略。而在ICA校正后,检测到的不良电极需要采用三维或球面样条算法(spherical spline algorithm)来进行插值。

由于Cartool计算ICA还并不全面,最好的方法是使用EEGLAB来计算ICA。

1.5 空间过滤 (Spatial Filtering)

在获得EEG源成像之前,我们需要继续对头皮电位图进行观察和处理。即使在人工电极插补和移除无关的ICA成分后,瞬时事件仍可能在短时间内损坏少数电极,并对源定位产生影响。

在Cartool中,我们介绍了一个空间滤波器,它是一种瞬时滤波器,通过空间平滑地图来去除局部异常值,而不丢失其地形特征。

方法如下:

  • 对于每个电极,确定了6个最近邻的值,加上中心电极本身的值
  • 去除最小值和最大值
  • 剩余的5个电极进行平均,每个电极点的权重与距离成反比,中央电极的权重为1(图3A)

所以我们有一个间隔加权平均值。对于每个电极e:
在这里插入图片描述

图 2 代表5个电极的电压值,代表临近电极与中央电极的距离

我们可以计算间隔加权平均值来检测异常值,并将其舍弃。

在这里插入图片描述

图 3 空间过滤(A)为原理图(B)空间过滤前的波形(C)空间过滤前的地形图(D)空间过滤后的波形(E)空间过滤后的地形图

1.6 检测不良时段 (Detecting Bad Epochs)

在经过上面几个步骤的处理之后,可能还仍然存在残留的瞬时伪迹,如肌肉运动、出汗、眨眼等。因此我们需要对某个“不良时段”进行人工标记,并删除。

在Cartool中,我们可以对轨迹进行简单统计,估计每条轨迹与它自己的基线偏离的程度,从而识别这些“不良时段”。它主要是计算瞬时值(在给定时间点下电极的绝对值、方差、偏度和峰度)和时间的交叉卷积,这是一种估计信号中的噪声比较方便的方法。

所有这些偏离估计量被合并到一个单一的复合估计量,明显偏离平均值的时间段被突出显示。通过视觉检查,我们可以决定是否应该将某段标记为“不良时段”。尽管Cartool的许多工具允许跳过它们,但将它们进行移除会便于后期处理。

2 构建头部模型

头部模型是计算脑电正解(forward solution)的模型。正解决定了大脑中的某个特定源对头皮上每个电极的影响程度。我们可以使用参与者的单个MRI来构建头部模型。

由于从源到头皮表面的电场会被这些隔室(尤其是颅骨)减弱,因此在头部模型中适当地纳入头部形状和电导率参数对于EEG源重建至关重要。我们需要对MRI进行预处理,以得到不同脑室(如皮肤,颅骨,脑脊液,大脑)之间的电导率参数。

在预处理时,电极必须和记录过程中电极放置的位置一致,以保证源定位的正确性。

2.1 MRI处理 (MRI Processing)

EEG源成像的头部模型是基于MRI的,为了正确提取与头部形状、颅骨厚度和灰质体积等有关的信息,需要进行以下几个步骤:重新采样和重新定位、颅骨剥离、偏场校正,以及灰质和白质分离。下面介绍如何使用Cartool实现这些步骤。

2.2 重采样和重定位 (Re-sampling and Re-orientation)

第一步需要对MRI重新采样并重新定位。如果采集是各向异性的,通常情况下,体素的大小在所有三维中都是不相等的(图4A)。这对于任何的三维处理,都是非常有害的。

在Cartool中,可以通过一些线性调整来简单地对最低分辨率的轴进行上采样,以达到3个轴的最高分辨率。Cartool默认将MRI转换为X、Y、Z三个轴的右-前-上(“RAS”)方向(右手系统),类似于MNI模板大脑。这是通过适当旋转90度来实现的(图4B),由此使得三维中的体素大小一致。
在这里插入图片描述

图 4 MRI重定位

图5展示了一个最佳切割面,并确定了原点

在这里插入图片描述

图 5 MRI最佳切割面

2.3 颅骨分离和偏压校正 (Skull-Stripping and Bias Field Correction)

在分析过程中,我们需要得到一个标准化的个体头部模型。因此,我们的下一步是剥离颅骨以分离颅骨、脑脊液和大脑(图6)。

在这里插入图片描述

图 6 颅骨分离

MRI通常在空间中存在不均匀性,这被称为偏差场。在这种情况下,脑组织(如灰质)会在扫描仪中的不同物理位置上存在不同的值(图7左),这会阻碍脑组织的分离。因此在Cartool中,我们需要对其进行校正(图7右)。
在这里插入图片描述

图 7 偏压校正

2.4 灰质提取 (Gray Matter Segmentation)

MRI处理的最后一步便是白质与灰质分离。这是因为EEG源定位通常将源空间限制在包含突触的灰质中。Cartool能够使用混合高斯函数来估计灰质、白质和脑脊液的整体强度分布,从而提取gray mask(图8)。

在这里插入图片描述

图 8 灰质提取

2.5 检测灰质中的解点 (Determining the solution point in the Gray Matter)

通过灰质分离而获得体积称为solution space,上面的电极活动能够被定位。solution space通常包含3000-6000个单独的solution point。

solution point提取是源定位中十分重要的一步。我们需要注意以下几个方面:

1)左右分布

不对称的solution point分布会对源定位产生影响,因为它会给大脑的一侧赋予更多的权重,并将源定位到错误的一侧。因此我们需要保证它们在大脑左右半球是平均分布的。

2)临近最小值

由于需要在solution space中计算一个离散的拉普拉斯矩阵,因此在Cartool中,每个solution point的附近都应该有足够的相邻solution point。

3)连续性

由于源活动无法在不存在的solution point上重建,导致部分大脑区域缺乏精度。因此我们需要保证solution point的连续性(图9)。

在这里插入图片描述

图 9 solution point连续性

4)solution point的数量

通常最佳solution point的数量在3000-6000,数量太少或太多都存在不同的利弊(图10)。

在这里插入图片描述

图 10 关于不同数量的solution point的利弊

3 电极数量及位置

3.1 电极布置 (Electrode Layout)

一些研究表明,电极数量较少时,不仅会导致分辨率模糊,而且还会产生不正确的定位。一定范围内的高密度的电极分布更能帮助我们精准定位。

除了电极的数量,电极的位置在头部的覆盖也起着重要的作用。标准的10-20系统不包括头部下方的电极,这不利于正确记录颞叶基部下方和前部的活动,而起源于或传播自颞中结构的活动是最大的(图11)。因此,建议临床常规标准10-20系统中每侧至少增加3个下电极。
在这里插入图片描述

图 11 蓝色:256个电极网;红色:标准临床10-20系统19个电极的位置。放大区域显示,19个电极对额叶、基底颞叶和中线区域的覆盖较差

3.2 三维电极位置 (3D Electrode Positions)

对于MRI,在被试头部表面正确安放电极非常重要。最精确的方法就是让被试戴上脑电帽,进入扫描仪中,然后把电极引起的伪迹在MRI图像上标记出来(图12)。
在这里插入图片描述

图 12 256电极通道

3.3 MRI头部电极的协同配准 (Co-registration of the Electrodes on the MRI Head)

在Cartool中,我们需要通过显示和手动调整电极阵列的整体三维形状来实现三维电极阵列的协同配准。一旦调整完成,Cartool还提供了最后一个有用的功能:将电极“粘合”在头部,这是一种虚拟功能。通过激活这种虚拟的粘合,所有电极都将完美地垂直投射到头皮上最近的位置(图13)。

在这里插入图片描述

图 13 电极“粘合”前vs 电极“粘合”后

4 计算导程电场

为了计算导程电场(lead field),必须继续创建一个头部模型,该模型必须尽可能真实地结合头部的形状和不同组织的电导率参数,包括大脑中的电流源和头皮上的电位。最常用的模型是BEM和FEM。

在Cartool中,还有一种LSMAC模型。尽管三者的复杂度不一致,但它们都能够提供相似的源定位。下面我们主要地介绍一下LSMAC模型。

4.1 LSMAC头部模型 (The LSMAC Head Model)

对于LSMAC头部模型,在每个电极下,颅骨的内外边界能够被自动地确定,并对整体电阻率值进行局部校正,减少了脑电信号逆建模的误差来源。头骨的边界是通过分析从大脑中心到头皮电极的辐射线的灰色水平来确定的。图14为在3个电极上估算颅骨半径的示例。
在这里插入图片描述

图 14 估算颅骨半径的原理

由于这种测量方法还存在一定的不确定性,Cartool要求提供被试年龄,并绘制除了不同年龄下的头骨厚度变化(图15A)。

另外,颅骨电阻率也会随着年龄的变化而变化。因此在Cartool中,给出了颅骨相对于邻近组织(大脑、脑脊液、头皮)的相对导电性与年龄之间的函数(图15B)。
在这里插入图片描述

图 15 (A)年龄与头骨厚度的关系(B)颅骨相对于邻近组织的相对导电性与年龄的关系

5 计算反解

在Cartool中,计算了三种线性源分布模型:LORETA、LAURA、NM。我们在一些实验和临床研究中验证了这些方法,并将其与颅内记录、电皮层刺激、fMRI和术后临床结果进行了比较。分析如下:

5.1 正则化优化 (Regularization Optimization)

正则化方法(Tikhonov regularization)通常被用于确定方程组的情况下,如在转换lead field时。正则化程度越高,结果越平滑,对噪声的敏感性越低。然而,过多的正则化,过度平滑的结果,将降低定位的精度。

为了处理所有情况,Cartool计算了13个矩阵,这些矩阵从0(无)增加到12(对于非常嘈杂的数据),并乘以一个常数∝(取决于所选择的逆模型),可以得到各个矩阵的正则化因子。

我们可以根据实际的EEG信号选择一个最佳矩阵。∝R代表正则化因子,R代表矩阵,K代表Lead Field,W代表一些特定的逆权重因子(图16)
在这里插入图片描述

图 16 计算正则化因子

对于给定的EEG数据,最优正则化的定义是:位于solution point与正则化因子R的函数拐点处。

5.2 反解结果的标准化(Normalization of the Inverse Solution Result)

在EEG进程中,我们可以观察到每一个solution point的功率会发生显著变化。为了可靠地估计被试大脑活动随时间的波动,并在不同被试之间进行比较,我们需要找到一种方法来校正这种功率变化。

Cartool提供了一种标准化方法来计算校正因子。在标准化过程之后,电流密度的功率在所有solution point上都可以进行比较,且噪声分量是正态分布的。

首先,图17A展示了标准化之前的3个solution point信号,它们的平均幅值存在差异;图17B为标准化之后的信号,可以看到它们的平均幅值已经在相同的范围内。

在这里插入图片描述

图 17 (A)solution point标准化前的幅度 (B)solution point标准化后的幅度

同样,标准化之前的背景活动主要集中在左侧,且不一致(图18A);标准化之后的背景活动都集中在1上(图18B)。

在这里插入图片描述

图 18 (A)背景活动分布在左侧 (B)背景活动集中在“1”

图19为所有solution point的源幅值分布,在标准化之后,它们的最大幅值范围(红色区域)更为集中。

在这里插入图片描述

图 19 (A)标准化前的最大幅值范围 (B)标准化后的最大幅值范围

5.3 反解结果:矢量与标量(Results of Inverse Solution: Vectorial vs. Scalar)

逆矩阵与脑电信号相乘的输出结果在于每个solution point上都有等效的偶极子。由于每个偶极子都是一个三维矢量,它也可以代表x、y和z方向上的振幅,即标量。大多数时候,我们所导出的都是振幅,而不是偶极子。

图18展示了分布源的实际矢量结果(左上)和相应的振幅值(右上,底部为横向切片)(图20)。

在这里插入图片描述

图 20 偶极子(矢量)与振幅(标量)

6 EEG源定位的应用

EEG源定位越来越多地用于推断在头皮上观察到的活动的大脑区域。在临床应用方面,EEG源定位广泛地应用于癫痫,目的是定位癫痫区以进行药物治疗。

除了临床意义外,癫痫EEG源定位也为评估不同头部源模型的性能和精度提供了独特的可能性,因为颅内记录或术后结果可作为“黄金标准”。

在实验研究中,EEG源成像已经成为涉及感觉、运动和认知功能的不同脑区域定位的标准,最常用于事件相关电位。EEG源成像通过连接性测量,也成为了定义大规模网络动态的一种方式,它是功能连接分析的先决条件。

7 结论

本文从细节上描述了从多通道头皮EEG记录到评估潜在神经源分布的一系列步骤,解释了每个步骤背后的逻辑,执行这些步骤需要满足的条件,以及如何在Cartool中实现。这对我们具有极大的启发意义。

PS:在本文首发的微信公众号 行上行下 的后台回复关键词“脑电溯源”即可获得所述原文及参考文献啦!

参考文献

  • Michel, C. M. , & Brunet, D. . (2019). Eeg source imaging: a practical review of the analysis steps. Frontiers in Neurology, 10.

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Cartool工具包分析EEG源成像 的相关文章

  • 大学生选课抢课如何提高选中概率

    作者位于哈尔滨某高校 选课总是激动人心的一件大事 但是明明与同学一起进的系统 他就能顺利选课 而我却被强退出来 无数辛酸让我知道了一些道理 写下这篇文章给学弟学妹们作为参考 原理 问 为什么大多数学校教务系统选课时都会卡 答 学校教务系统平
  • 解决 kali换源之后签名无效

    报错问题 apt get update 报错 更新扩展知识 kali更新源 终端输入 vi etc apt sources list 中科大 deb http mirrors ustc edu cn kali kali rolling ma
  • 虚拟化与网络存储技术

    虚拟化技术简介 一 常见的虚拟化技术分类 1 CPU虚拟化 CPU的虚拟化技术是一种硬件方案 支持虚拟化技术的CPU带有特别优化过的指令集来控制虚拟过程 通过这些指令集 VMM会很容易提高性能 2 服务器虚拟化 服务器虚拟化能够通过区分资源
  • 数据集下载OTB,VOT,UAV,鸢尾花

    OTB数据集下载百度网盘链接 链接 https pan baidu com s 1snsJF 7Sw EbKtzdvLO1nw 提取码 ls23 VOT数据集下载百度网盘链接 链接 https pan baidu com s 1UiTG1z
  • flink大数据处理流式计算详解

    flink大数据处理 文章目录 flink大数据处理 二 WebUI可视化界面 测试用 三 Flink部署 3 1 JobManager 3 2 TaskManager 3 3 并行度的调整配置 3 4 区分 TaskSolt和parall
  • BSD、Apache、MIT、GPL、LGPL几种常见的开源协议

    转载地址 https www cnblogs com Vito2008 p 4806677 html 1 BSD开源协议 original BSD license FreeBSD license Original BSD license B
  • 不能安装64位office提示已安装32位的

    问题描述 安装64位office办公软件的时候提示已经安装32位的office办公软件所以无法继续安装 但实际上之前安装的32位的office办公软件已经卸载了 问题现象截图如下 解决办法 从问题描述中 我们其实已经能够看出问题原因了 类似
  • 第一篇博--初入CSDN

    选择开博并计划按月定期发布一些敲码路上的收获和心得 目的是在梳理知识 复盘总结的同时 能够和志同道合的朋友们一起学习 共同进步 在互联网上留下一份自己的痕迹 与诸君共勉 联系方式 631435743 qq com 欢迎大家找我讨论计算机专业
  • 鼠标右键添加git

    1 打开注册表 win R 输入regedit 2 找到HKEY CLASSES ROOT Directory Background目录 3 查看是否有shell这个目录 如果没有就添加 4 在shell目录下添加 项 鼠标右键点击新建 项
  • 工业安全生产信息化平台的基本架构和关键功能分享

    工业安全生产信息化平台是指利用信息技术手段 将工业安全生产管理与数据采集 传输 处理相结合 实现对工业安全生产全过程的数字化 信息化 智能化管理的平台 它通过集成多种信息系统和设备 实现对重大危险源监控预警 安全风险分级管控 安全生产一张图
  • DHCP的配置(以华为eNSP为例)

    如有错误 敬请谅解 此文章仅为本人学习笔记 仅供参考 如有冒犯 请联系作者删除 基础知识介绍 络组建步骤 1 拓扑设计 2 IP地址规划 按照拓扑中划分的 络范围 规划 络位不同的IP地址 3 配置 1 配置各个节点的IP地址 2 路由 全
  • 如何阅读论文?

    入门级 1 入门级推荐阅读文献 大牛近五年的论文研究综述 学位论文 网站 知网 t宝买知网号 SCI HUB https sci hub tw 2 知网搜索 学会提取关键词 在搜索引擎上找研究方向关键词 综述 进展 展望 看被引率高的论文
  • GNURadio报错Unable to create context(windows10环境)

    GNURadio报错Unable to create context windows10环境 这里本人使用的是GNU Radio3 7 11 iiosupport win64 版本 外设是ADI的ADALM PLUTO 这里本人使用的是GN
  • 杂七杂八的小知识

    杂七杂八的小知识 前端知识 Node js安装注意事项 Vue学习文档 Mysql数据库小知识 安装数据库后使用数据库所需步骤 MySQL远程连接 常用数据库命令 mysql数据库导入查询 StarUML使用教程 docker小知识 cma
  • 【电机学】直流电机

    直流电机 什么是直流电机 直流电机的工作原理 直流发电机的工作原理 直流电动机的工作原理 可逆性原理 直流电机的主要结构部件 直流电机的电枢绕组 基本特点 并联支路对数 电刷的放置 一些概念 直流电机的磁场 直流电机的空载磁场 电枢电流Ia
  • 通过python程序调取摄像头画面

    目录 1 方法 2 演示代码 3 总结 1 方法 想要调取摄像头画面有这么几个前提 需要使用网络摄像头并且支持RTSP协议 摄像头要和你的电脑在同一个局域网下 需要知道摄像头的账号 密码 IP地址 RTSP协议是一种网络传输协议 不同的摄像
  • Freertos 在contexM0芯片上的移植

    1 freertos源码 官网下载地址 https www freertos org 下载LTS长期支持版本 2 在工程目录下新建FreeRTOS文件夹 将FreeRTOS 的源码添加到这个文件夹中 portable 文件夹中只需要复制 k
  • 直排轮滑教程1

    准备活动及站立方法 1 轮滑起源于滑冰 2 开始运动之前最好做热身运动 刺激肌肉 使身体兴奋起来 3 戴护具 顺序是头盔 护肘 护膝 鞋 护掌 脱的顺序相反 4 起身 左腿立起 两手扶腿 两手撑 左腿蹬站立 5 原地站立方法三种 跟靠拢 两
  • 看完这篇 教你玩转镜像转换神器qumu实现虚拟机做题自由!

    前言 最近有小伙伴说比赛没设备 问有没有不需要设备也能实现做题自由的方法 今天这里分享一期 看完这篇你将学会 使用 qumu 转换镜像格式 一般我们做题都是 img 格式的环境 需要导入设备 有些小伙伴没有设备 就可以使用这种方法 把 im
  • 液晶偏振光栅

    1 偏振 光是横波 在垂直于光的传播方向的平面内光波振动 即E矢量振动 各方向振幅都相等的光为自然光 只在某一方向有光振动的光称为线偏振光 各方向光振动都有 但振幅不同的光叫部分偏振光 螺旋着振动的光称圆偏振光 分旋和右旋 2 庞加莱球表示

随机推荐

  • python_基础语法_find_查找字符,不存在则返回-1

    usr bin python3 str1 Runoob example wow str2 exam print str1 find str2 print str1 find str2 5 print str1 find str2 10 不存
  • android 通过usb读取 U盘

    关联 compile com github mjdev libaums 权限设置
  • 期货交易怎么做好风险控制?

    期货交易保证金机制还有期货自带杠杆的原理要求我们在期货交易过程中要更加注重风险的控制 因为杠杆机制下盈利与亏损都会被放大 不及时止损所带来的后果是很严重的 这是期货交易中的大忌 所以今天我们就来聊一聊期货交易中我们应该怎样做到风险控制 1
  • 理解容器和虚拟化技术

    容器和虚拟化 虚拟机 虚拟化技术 硬件虚拟化 虚拟机的基础架构 深层理解虚拟机 如何运行多个隔离应用 容器 容器技术 容器的作用 容器运行多个相互隔离的应用 docker为例 虚拟机和容器的区别 Docker 什么是docker docke
  • kube-apiserver 报错 Unable to authenticate the request“ err=“[x509: certificate signed by unknown ...

    问题描述 采用ansible 二进制方式部署kubernetes 部署完成后kubectl get node 节点状态 NotReady kubectl get pod n kube system 发现 calico 处于 Pending
  • linux ssh Unused,安装openssh-portable时遇到的问题及解决办法

    问题1 configure error Your OpenSSL headers do not match your library Check config log for details If you are sure your ins
  • [pytorch]关于cross_entropy函数

    loss F cross entropy output labels output 网络的全连接层的输出 值可能是有正有负的 例如 1 56 2 43 等 labels 正常标签 例如一共5个类别 值就是0 4
  • style-components使用

    目录 安装 创建全局样式文件 以js为后缀 组件中使用 为什么使用 style components style components最基础的用法就是以组件的形式编写样式 安装 npm install styled components 创
  • Qt 信号和槽函数

    信号和槽是一种高级接口 应用于对象之间的通信 它是 QT 的核心特性 当某个信号被发射 就需要调用与之相绑定的槽函数 这与Windows下的消息机制类似 消息机制是基于回调函数 一个回调即是一个函数的指针 因此如果希望一个处理函数通知一些事
  • QT day1

    一 QT基本框架 1 QT注意事项 QT文件路径必须要纯英文 2 QT类类型 QMainWindow 带有菜单栏目 Qwidget 常用 3 文件系统 main函数分析 include mainwindow h include
  • 记一次老版本perforce的迁移历程

    当前现状 项目组的代码与资源是用perforce管理 已经有7年历史了 用的是perforce2015版本 仓库有2 4T perforce所在物理机只有3T空间 journal文件当前470G 每天增长3 4G 最大的问题 7年前的旧机器
  • 微信小程序npm安装,保姆级图文教程,步骤齐全

    一 配置nodejs Download Node js 下载node js 点击 msi程序安装 随便安装路径 尽量避免中文 只要安装的是电脑上就行 记住安装路径 这个环境变量是自动配置的 zip需要手动配置环境变量 zip包 随便解压路径
  • visual studio 代码格式化的若干方法(含快捷键)

    Microsoft Visual Studio Community 2019 16 11 19 方法一 快捷键 选中内容 gt ctrl k ctrl f 方法二 工具栏 选中内容 gt 编辑 gt 高级 gt 设置选定内容的格式
  • 玩10次ChatGPT就要消耗1升水|加州大学河滨分校研究结果

    西风 发自 凹非寺量子位 公众号 QbitAI 用5次ChatGPT 最高可消耗500毫升水 这是研究人员对OpenAI训模型耗水量调查后给出的结果 此外 据微软最新环境报告 2021年到2022年其全球用水量飙升34 也就是近17亿加仑
  • 计算Shell脚本执行时间

    startTime date Y m d H M S startTime s date s 执行程序 endTime date Y m d H M S endTime s date s 计算时长 sumTime endTime s star
  • HyperLedger Fabric - 超级账本(4)链码的概念与使用

    概念 Chaincode 链上代码 简称链码 一般是指用户编写的应用代码 链码被部署在Fabric网络节点上 Peer 节点 背书节点 commit节点 Leader节点 锚节点 运行在隔离沙盒 当前为Docker容器 中 并通过gRPC协
  • QT--连续发送数据包

    提示 本文为学习记录 若有错误 请联系作者 谦虚受教 文章目录 前言 一 数据包 二 相关实现代码 三 Char转QByteArray 总结 前言 萤火虫在灯光下为什么不会亮呢 一 数据包 定义 包 Packet 是TCP IP协议通信传输
  • django vue前后台传对象及数据highcharts图表显示

    总体思路 Vue对象中定义data数据对象 axios get方法通知后台产生数据 后台用JsonResponse返回数据 注意写上safe False 前台用response data取回数据 存入Vue对象的data对象中 在js中通过
  • 剑指 Offer 53 - I. 在排序数组中查找数字 I

    剑指 Offer 53 I 在排序数组中查找数字 I 题目 题目链接 具体代码 题目 题目链接 https leetcode cn com problems zai pai xu shu zu zhong cha zhao shu zi l
  • 使用Cartool工具包分析EEG源成像

    使用Cartool工具包分析EEG源成像 1 基本要求 1 1 EEG预处理 EEG Pre processing 1 2 时间过滤 Temporal Filtering 1 3 下采样 降低采样率 Down Sampling 1 4 电极