一個關于fsaverage bem文件的說明

MNE文檔:基于模板 MRI 的 EEG 前向算子
Head model and forward computation

在了解了腦圖譜發展的過程之后,對腦的模版有了更深的認識,所以,對于之前使用的正向的溯源文件,進行一下解析,查看包含的信息,mne的存儲格式和nilearn中的格式是否有區別。

本示例中,mne除了fsaverage還有sample,這兩個常用。

文章目錄

  • samaple和fsaverage的對比
      • 1. **`fsaverage`:標準模板大腦**
        • (1) **來源與定義**
        • (2) **數據結構**
        • (3) **獲取方式**
      • 2. **`sample`:示例數據集**
        • (1) **來源與定義**
        • (2) **數據結構**
        • (3) **獲取方式**
      • 3. **關鍵區別**
      • 4. **何時使用哪一個?**
        • (1) **使用 `fsaverage` 的場景**
        • (2) **使用 `sample` 的場景**
      • 5. **代碼示例**
        • (1) 加載 `fsaverage` 的 BEM 模型
        • (2) 加載 `sample` 的 MEG 數據
      • 6. **常見問題**
        • (1) **能否將個體數據映射到 `fsaverage` 模板?**
        • (2) **`sample` 數據集是否包含 `fsaverage` 數據?**
        • (3) **如何切換被試目錄?**
      • 7. **文檔參考**
      • 總結
    • 幾個模版被試的說明
      • 1. `fsaverage`
      • 2. `fsaverage_sym`
      • 3. `morph-maps`
      • 4. `sample`
      • 總結
  • 導入數據
    • bem文件的說明
      • 計算并可視化 BEM 表面
    • bem的surf查看
    • 單層的
    • 三層的
  • BEM模型鍵值詳細分析
        • (1) **層 ID 4**(電導率 0.3 S/m)
        • (2) **層 ID 3**(電導率 0.006 S/m)
        • (3) **層 ID 1**(電導率 0.3 S/m)
      • 2. **電導率值的意義**
      • 3. **層 ID 的編號問題**
    • 使用nilearn進行fsaverage的導入
    • 對于src的查看
    • 使用 mne.viz.plot_bem
  • 生成一個bem文件

samaple和fsaverage的對比

在 MNE-Python 中,samplefsaverage 是兩個不同的模板/數據集,但它們的用途和定位有本質區別。以下是詳細解釋:


1. fsaverage:標準模板大腦

(1) 來源與定義
  • 來源:由 FreeSurfer 提供,是一個 標準化的平均大腦模板,基于多被試 MRI 數據配準到 MNI 空間后生成。
  • 用途
    • 用于跨被試分析(如組水平統計)。
    • 當個體 MRI 數據不可用時,作為替代模板(如源空間、BEM、皮層表面等)。
    • 支持腦區標簽(如 Brodmann 分區)的標準化映射。
(2) 數據結構
  • 包含內容
    • 高分辨率皮層表面(如 whitepialinflated)。
    • 預計算的 BEM 模型(如 fsaverage-5120-5120-5120-bem-sol.fif)。
    • 標準源空間(如 fsaverage-ico-5-src.fif)。
    • 解剖標簽(如 aparc.a2009s 分區)。
  • 坐標系:MNI 坐標系(標準空間)。
(3) 獲取方式
import mne
mne.datasets.fetch_fsaverage(subjects_dir="/path/to/your/subjects_dir")
  • 下載后文件存儲在 subjects_dir/fsaverage/ 中。

2. sample:示例數據集

(1) 來源與定義
  • 來源:MNE-Python 官方提供的 單被試示例數據集,包含一名真實被試的匿名化數據(EEG/MEG/MRI)。
  • 用途
    • 學習 MNE 的入門工具(教程、文檔示例)。
    • 測試算法或腳本的功能。
    • 演示數據預處理、源定位、可視化等完整流程。
(2) 數據結構
  • 包含內容
    • 原始 MEG 數據(.fif 文件)。
    • MRI 數據(已通過 FreeSurfer 重建的個體大腦)。
    • 事件標記、電極位置、噪聲協方差矩陣等。
    • 預計算的 BEM 模型、源空間、正向模型。
  • 坐標系:個體 MRI 坐標系(未經 MNI 標準化)。
(3) 獲取方式
import mne
sample_data_path = mne.datasets.sample.data_path()
subjects_dir = sample_data_path / "subjects"

3. 關鍵區別

特性fsaveragesample
類型標準模板(群體平均)單被試真實數據(匿名化)
用途跨被試分析、模板化處理學習、測試、演示流程
坐標系MNI 空間個體 MRI 空間
BEM/源空間預生成的模板模型基于個體 MRI 生成的模型
數據內容僅解剖結構和模板數據完整的 MEG/EEG 數據 + 解剖數據

4. 何時使用哪一個?

(1) 使用 fsaverage 的場景
  • 你的研究沒有個體 MRI 數據,需要標準化分析。
  • 進行組水平統計或跨被試比較。
  • 需要與文獻中的 MNI 坐標結果對齊。
(2) 使用 sample 的場景
  • 學習 MNE 的基本操作(如教程中的代碼示例)。
  • 測試新腳本或算法的兼容性。
  • 演示從原始數據到源定位的完整流程。

5. 代碼示例

(1) 加載 fsaverage 的 BEM 模型
subjects_dir = "/path/to/subjects_dir"
bem_file = subjects_dir / "fsaverage/bem/fsaverage-5120-5120-5120-bem-sol.fif"
bem_sol = mne.read_bem_solution(bem_file)
(2) 加載 sample 的 MEG 數據
from mne.datasets import sample
data_path = sample.data_path()
raw_file = data_path / "MEG/sample/sample_audvis_raw.fif"
raw = mne.io.read_raw_fif(raw_file, preload=True)

6. 常見問題

(1) 能否將個體數據映射到 fsaverage 模板?

是的!通過 配準(registration) 將個體 MRI 對齊到 fsaverage 的 MNI 空間,使結果可跨被試比較。
工具:

  • FreeSurfer 的 recon-all --target fsaverage
  • MNE 的 mne.coregister
(2) sample 數據集是否包含 fsaverage 數據?

不直接包含,但可單獨下載 fsaverage。兩者通常分開使用。

(3) 如何切換被試目錄?

設置 subjects_dir 環境變量或在代碼中指定:

import mne
mne.set_config("SUBJECTS_DIR", "/path/to/your/subjects_dir")

7. 文檔參考

  • fsaverage 文檔
    MNE: FreeSurfer’s fsaverage
  • sample 數據集文檔
    Sample Dataset Tutorial

總結

  • fsaverage 是標準模板大腦,用于跨被試分析和標準化處理。
  • sample 是單被試示例數據集,用于學習和測試。
  • 根據研究需求選擇:需要模板化分析 → fsaverage;需要真實數據示例 → sample

在這里插入圖片描述

幾個模版被試的說明

你提到的四個文件夾 (fsaverage, fsaverage_sym, morph-maps, 和 sample) 在神經影像學和腦電圖(EEG)/腦磁圖(MEG)數據處理中扮演著不同的角色,它們分別對應不同的模板或功能。下面我將詳細解釋每個文件夾及其內容的區別:

1. fsaverage

  • 描述fsaverage 是一個標準的大腦模板,由 FreeSurfer 提供,并廣泛用于神經影像研究中。它是一個平均化的、對稱的大腦模型,基于多個大腦掃描結果構建而成。
  • 用途
    • 作為解剖參考框架,用于標準化不同被試的大腦數據。
    • 在 MNE-Python 中,常用于源定位分析,提供了一個通用的源空間和 BEM 模型。
  • 特點:高分辨率,包含詳細的皮層結構信息。

2. fsaverage_sym

  • 描述fsaverage_symfsaverage 的一個變體,特別強調左右半球的對稱性。這個模板在創建時進行了額外的處理,以確保兩個半球盡可能對稱。
  • 用途
    • 當需要進行嚴格對稱性分析時使用,例如在研究左右半球功能差異時。
    • 對于某些特定的統計分析或可視化任務,可能更傾向于使用對稱模板。
  • 特點:左右半球高度對稱,適用于需要嚴格對稱性的研究。

3. morph-maps

  • 描述morph-maps 文件夾通常包含形態映射(morphing maps),這些映射用于將一個被試的數據轉換到另一個被試或模板上。
  • 用途
    • 在多被試研究中,用于將個體數據標準化到共同的空間框架下,便于跨被試比較和群體分析。
    • 可以將單個被試的源估計結果映射到 fsaverage 或其他模板上,以便進行群體水平的統計分析。
  • 特點:包含從個體到模板或其他個體的映射關系,是實現數據標準化和群體分析的關鍵工具。

4. sample

  • 描述sample 通常指的是一個示例被試的數據集,包括 EEG/MEG 數據、MRI 掃描結果等。MNE-Python 提供了一個名為 sample 的示例數據集,用于演示和教學目的。
  • 用途
    • 作為學習和測試 MNE-Python 功能的示例數據。
    • 研究人員可以使用 sample 數據集來熟悉各種數據處理和分析流程。
  • 特點:包含完整的實驗數據和相關文件,適合初學者和開發者用來學習和調試代碼。

總結

  • fsaveragefsaverage_sym:都是標準大腦模板,但后者更強調左右半球的對稱性。
  • morph-maps:包含用于數據標準化和群體分析的形態映射。
  • sample:是一個示例數據集,用于學習和測試 MNE-Python 的功能。

在實際應用中,根據你的具體需求選擇合適的模板和工具非常重要。如果你正在進行多被試研究,可能需要使用 morph-maps 來標準化數據;如果專注于單個被試的詳細分析,則可以直接使用 fsaveragefsaverage_sym 作為參考框架。

導入數據

import numpy as npimport mne
from mne.datasets import eegbci, fetch_fsaverage# Download fsaverage files
fs_dir = fetch_fsaverage(verbose=True)
subjects_dir = fs_dir.parent# The files live in:
subject = "fsaverage"
trans = "fsaverage"  # MNE has a built-in fsaverage transformation
src = fs_dir / "bem" / "fsaverage-ico-5-src.fif"
bem = fs_dir / "bem" / "fsaverage-5120-5120-5120-bem-sol.fif"

我們獲取fsaverage 的存儲文件夾。
之前文件中有過一定的描述,下面進行更加詳細的記錄。

第一個文件fsaverage-ico-4-src.fif中的“src”可能代表“source
space”,即源空間。源空間定義了大腦中可能產生信號的源的位置,通常是皮層表面。ico-4可能指的是四階的Icosahedron(二十面體)細分,用于生成源空間的網格。Ico-4的細分級別決定了源的數量,細分級別越高,源點越多,計算量也越大。用戶可能需要這個文件來進行源定位分析,比如計算逆解。

第二個文件fsaverage-5120-5120-5120-bem-sol.fif中的“bem”代表邊界元模型(Boundary
Element
Model),用于正向計算中的電磁場模擬。BEM模型需要不同組織的邊界,如頭皮、顱骨、腦脊液和大腦等。文件名中的5120可能指的是每個邊界面(如頭皮、顱骨、大腦)的三角形數量,例如5120個三角形。而“sol”可能表示解文件,即已經計算好的BEM模型的解,用于快速計算導聯場或正向解。用戶在進行EEG/MEG的正向計算時會用到這個文件。

先繼續插入可視化的代碼,對于raw,需要的可能是布局文件,

(raw_fname,) = eegbci.load_data(subjects=1, runs=[6])
raw = mne.io.read_raw_edf(raw_fname, preload=True)# Clean channel names to be able to use a standard 1005 montage
eegbci.standardize(raw)# Read and set the EEG electrode locations, which are already in fsaverage's
# space (MNI space) for standard_1020:
montage = mne.channels.make_standard_montage("standard_1005")
raw.set_montage(montage)
raw.set_eeg_reference(projection=True)  # needed for inverse modeling# Check that the locations of EEG electrodes is correct with respect to MRI
mne.viz.plot_alignment(raw.info,src=src,eeg=["original", "projected"],trans=trans,show_axes=True,mri_fiducials=True,dig="fiducials",
)

在這里插入圖片描述

bem文件的說明

BEM 表面是不同組織之間界面三角剖分,用于前向計算。這些表面例如包括內顱骨表面、外顱骨表面和皮膚外表面,即頭皮表面。

計算并可視化 BEM 表面

計算 BEM 表面需要使用 FreeSurfer,并使用命令行工具 mne watershed_bem 或 mne flash_bem,或者相關的函數 mne.bem.make_watershed_bem() 或 mne.bem.make_flash_bem()。

這里我們假設它已經計算過了。每個受試者需要幾分鐘。

對于腦電圖(EEG),我們使用 3 層(內顱骨、外顱骨和皮膚),而對于腦磁圖(MEG),只需要 1 層(內顱骨)就足夠了。

bem.keys()

dict_keys([‘solution’, ‘bem_method’, ‘surfs’, ‘solver’, ‘is_sphere’,
‘nsol’, ‘sigma’, ‘source_mult’, ‘field_mult’, ‘gamma’])

bem的surf查看

如果要生成一個新的bem,應該需要,這幾個層的surf文件
此處需要使用的就是,inner_skull.surf,outer_skull.surf,outer_skin.surf

Using surface:
C:\Users\maten\mne_data\MNE-fsaverage-data\fsaverage\bem\inner_skull.surf
Using surface:
C:\Users\maten\mne_data\MNE-fsaverage-data\fsaverage\bem\outer_skull.surf
Using surface:
C:\Users\maten\mne_data\MNE-fsaverage-data\fsaverage\bem\outer_skin.surf

顯示一下,這個的樣子

單層的

# 說明,使用pyvista,需要使用不同的繪圖格式,表面的點需要轉為數量,加上坐標的形式,并構成一維數組。
from mne import read_surface
import numpy as np
import pyvista as pv
import numpy as np
outer_skin_coords, outer_skin_faces = read_surface('C:/Users/maten/mne_data/MNE-fsaverage-data/fsaverage/bem/outer_skin.surf')
faces_pyvista = np.hstack((3 * np.ones((outer_skin_faces.shape[0], 1), dtype=outer_skin_faces.dtype), outer_skin_faces))
surf = pv.PolyData(outer_skin_coords, faces_pyvista.ravel())
surf.plot()

對于
outer skin CM is -0.21 -19.38 -0.23 mm
outer skull CM is -0.19 -19.34 -0.49 mm
inner skull CM is -0.53 -21.10 6.21 mm

這個對應的是質心的坐標。

在這里插入圖片描述

三層的

from mne import read_surface
import pyvista as pv
import numpy as npdef create_polydata_from_mne_coords_faces(coords, faces):"""Convert coordinates and faces from MNE format to PyVista format."""# 在每個面的前面添加數字 3(因為是三角形)faces_pyvista = np.hstack((3 * np.ones((faces.shape[0], 1), dtype=faces.dtype), faces))return pv.PolyData(coords, faces_pyvista.ravel())# 定義表面文件路徑
subjects_dir = 'C:/Users/maten/mne_data/MNE-fsaverage-data/fsaverage/bem/'
surfaces = [('inner_skull', subjects_dir + 'inner_skull.surf', 'blue'),('outer_skull', subjects_dir + 'outer_skull.surf', 'green'),('outer_skin', subjects_dir + 'outer_skin.surf', 'red')
]# 創建PyVista Plotter對象
plotter = pv.Plotter()# 循環遍歷每個表面文件并添加到繪圖器中
for name, path, color in surfaces:coords, faces = read_surface(path)polydata = create_polydata_from_mne_coords_faces(coords, faces)plotter.add_mesh(polydata, color=color, opacity=0.5, smooth_shading=True)# 顯示圖形
plotter.show()

在這里插入圖片描述

BEM模型鍵值詳細分析

BEM (邊界元素法) 模型中的鍵值具有以下含義:

  1. solution:BEM求解矩陣,包含了邊界面之間的電位關系,用于計算頭部不同組織界面上的電位分布。

  2. bem_method:使用的BEM方法類型,常見的有"linear collocation"(線性搭配法)或"linear Galerkin"(線性伽遼金法)。

  3. surfs:包含頭模型中使用的表面信息,通常包括內顱骨顱骨頭皮三個表面的幾何描述(點、面等)。

  4. solver:用于求解BEM方程的算法類型。

  5. is_sphere:布爾值,表示該BEM模型是否基于球形模型(True)或真實頭部形狀(False)。

  6. nsol:解決方案的維度或自由度數量。

  7. sigma:組織電導率值列表,單位通常為S/m(西門子/米),分別對應腦組織、顱骨和頭皮的電導率。

  8. source_mult:源乘數,與源強度計算相關的系數。

  9. field_mult:場乘數,與電場計算相關的系數。

  10. gamma:BEM公式中的γ系數矩陣,用于描述不同表面之間的電位關系。

這些參數共同構成了完整的BEM解決方案,用于在MEG/EEG分析中進行正向計算,即從已知的源活動推算出在傳感器位置處產生的場分布。

for layer in bem["surfs"]:print(f"層 ID: {layer['id']}")print(f"頂點數: {len(layer['rr'])}, 三角面片數: {len(layer['tris'])}")print(f"電導率 (σ): {layer['sigma']} S/m")

ID: 4 頂點數: 2562, 三角面片數: 5120 電導率 (σ): 0.30000001192092896 S/m
ID:3 頂點數: 2562, 三角面片數: 5120 電導率 (σ): 0.006000000052154064 S/m
ID: 1 頂點數: 2562, 三角面片數: 5120 電導率 (σ): 0.30000001192092896 S/m

(1) 層 ID 4(電導率 0.3 S/m)
  • 解剖結構頭皮(Scalp)
    • 最外層,包裹顱骨和腦組織。
    • 電導率較高(約 0.3 S/m),反映頭皮組織(皮膚、肌肉、脂肪)的導電性。
  • 作用
    • 在 EEG 中,頭皮是電流的最終傳導層,直接影響電極測量的電勢分布。
    • 在 MEG 中,對磁場影響較小(因磁場穿透性強)。
(2) 層 ID 3(電導率 0.006 S/m)
  • 解剖結構顱骨(Skull)
    • 中間層,分隔頭皮和腦內結構。
    • 電導率極低(約 0.006 S/m),反映顱骨的低導電性(骨組織導電性差)。
  • 作用
    • 在 EEG 中,顱骨會顯著衰減腦內電流的傳播,導致頭皮電勢分布模糊化。
    • 是影響 EEG 空間分辨率的主要因素。
(3) 層 ID 1(電導率 0.3 S/m)
  • 解剖結構腦殼(Brain)
    • 最內層,包裹腦實質(灰質、白質)和腦脊液(CSF)。
    • 電導率較高(約 0.3 S/m),反映腦組織和腦脊液的導電性。
  • 作用
    • 直接承載神經元活動產生的電流,是 EEG/MEG 信號的主要源頭。
    • 在 BEM 模型中,通常與腦脊液合并為一層(尤其在簡化模型中)。

2. 電導率值的意義

  • 頭皮和腦殼(0.3 S/m)
    高導電性允許電流自由流動,對 EEG 信號的空間分布起主導作用。
  • 顱骨(0.006 S/m)
    低導電性導致電流在穿過顱骨時被強烈衰減,是 EEG 信號空間模糊化的主要原因。
    注意:顱骨電導率的值存在爭議,一些研究建議使用 0.01–0.015 S/m [1],但 MNE 默認使用 0.006 S/m。
    默認值:頭皮 0.3 S/m,顱骨 0.006 S/m,腦殼 0.3 S/m。

3. 層 ID 的編號問題

你提供的層 ID(4、3、1)與常規 FreeSurfer/MNE 標準 不一致

  • 標準標識(FreeSurfer 慣例):
    • 3:腦殼(Brain)
    • 4:顱骨(Skull)
    • 5:頭皮(Scalp)
  • 可能原因
    • 數據生成時使用了非標準標簽(如自定義 BEM 模型)。
    • 文件可能來自舊版本 MNE 或特定數據集(如 fsaverage 模板的某些變體)。
    • 需進一步檢查數據來源或通過可視化驗證(見下文)。
import mne# 繪制 BEM 模型,疊加白質表面
mne.viz.plot_bem(subject="sample",subjects_dir="/path/to/subjects_dir",brain_surfaces="white",  # 指定表面類型orientation="coronal",slices=[100, 120, 140],  # 切片位置show=True
)

brain_surfaces的類型說明:

[“white”, “pial”]可以疊加顯示多個

‘white’ 表面適合檢查源空間與解剖的對齊。在這里插入圖片描述
“pail”
在這里插入圖片描述

‘inflated’ 表面適合觀察功能激活的拓撲模式。
在這里插入圖片描述
“sphere”
在這里插入圖片描述

‘head’ 或 ‘skull’ 和’brain’用于驗證 BEM 模型的幾何閉合性。
并不存在,沒有對應的文件。
在這里插入圖片描述

使用nilearn進行fsaverage的導入

from nilearn import datasets, plotting
from nilearn.surface import load_surf_data, load_surf_meshfsaverage = datasets.fetch_surf_fsaverage()
fsaverage#字典 

在這里插入圖片描述
我們可以看到這個文件是上面不同層的

其中pial_left的文件也是由兩部分組成的coordinates和face。
作為一個表面模型,有三維坐標點和,構成一個三角面的三維索引坐標。

# Step 2: 加載左半球網格并查看頂點數量
mesh = load_surf_mesh(fsaverage['pial_left'])  # 返回 (vertices, faces)
n_vertices = mesh[0].shape[0]  # vertices 是 (n_vertices, 3) 的坐標數組print(f"左半球頂點數量:{n_vertices}")# Step 3: 生成與頂點數量相同的隨機數據
random_data = np.random.randn(n_vertic
plotting.plot_surf(surf_mesh=fsaverage['pial_left'],  # 表面網格surf_map=random_data,                # 表面數據hemi='left',                       # 半球view='lateral',                    # 視角:外側colorbar=True,                     # 顯示顏色條title='Left Hemisphere Activation'
)
plotting.show()

在這里插入圖片描述

對于src的查看

import os.path as op
import numpy as np
import os
import mne
from mne.datasets import fetch_fsaverage# Download fsaverage files
fs_dir = fetch_fsaverage(verbose=True)
subjects_dir = op.dirname(fs_dir)# The files live in:
subject = "fsaverage"
trans = "fsaverage"  # MNE has a built-in fsaverage transformation
#說明ico-5-src.fif文件是源空間文件,bem-sol.fif文件是 bem 文件,用于解決 bem 問題。、
#ico-5的數據太大,無法計算,使用ico-4進行嘗試
src = op.join(fs_dir, "bem", "fsaverage-ico-4-src.fif")
bem = op.join(fs_dir, "bem", "fsaverage-5120-5120-5120-bem-sol.fif")
src = mne.read_source_spaces(src)
src.plot()src = mne.read_source_spaces(src)
src.plot()

在這里插入圖片描述

使用 mne.viz.plot_bem

對于bem的可視化,查看的是T1.mgz的圖像。

fs_dir:這個是放置模版的文件夾
src:是roi文件或者對應的類似的
subject:是在fs_dir中,在加一個路徑。
orientation有三種視圖’coronal’, ‘axial’, and ‘sagittal’
冠狀面(coronal plane)和矢狀面(sagittal plane) ,橫斷面(axial)
slices:時間的切片

mne.viz.plot_bem(subject='fsaverage', subjects_dir=fs_dir, src=None, orientation='axial',slices=[0,10,50,100],show=True)

在這里插入圖片描述
圖示一下這三個面

在這里插入圖片描述

把有效的溯源點,使用一些數據映射到頭圖像上,有些不均勻。

對于ico-4進行前向分解的左右腦,因為生理約束,有的點在頭皮之外,無法作為有效的點。
在這里插入圖片描述

生成一個bem文件

生成失敗了, 目前還沒找到原因

import mne
subjects_dir = r"D:\系統數據\git倉庫\MNE-Cookbook\mne_data\MNE-sample-data\subjects"
conductivity = (0.3, 0.006, 0.3)  # 標準導電率值 (S/m) for [腦脊液, 顱骨, 頭皮]
model = mne.make_bem_model(subject='fsaverage', ico=4, conductivity=conductivity,subjects_dir=subjects_dir)
bem_sol = mne.make_bem_solution(model)
mne.write_bem_solution('fsaverage-bem-sol.fif', bem_sol)

主要使用的應該是那三個suf文件
在這里插入圖片描述
理論上,看之前可視化也沒什么問題,但是生成的時候報錯了。
在這里插入圖片描述
目前還找不到什么原因。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/78680.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78680.shtml
英文地址,請注明出處:http://en.pswp.cn/web/78680.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#學習第21天:安全與加密(Security and Cryptography)

核心概念 1. 什么是加密? 加密:加密是一種將數據轉換為一種不可讀形式的方法,只有持有相應密鑰的人才能解密并讀取數據。目的:確保數據的機密性和安全性,特別是在傳輸過程中過防止未授權訪問。 2. 加密類型 對稱加密…

OpenCV 圖形API(77)圖像與通道拼接函數-----對圖像進行幾何變換函數remap()

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 對圖像應用一個通用的幾何變換。 函數 remap 使用指定的映射對源圖像進行變換: dst ( x , y ) src ( m a p x ( x , y ) , m a p y…

在線時間戳轉換工具

給大家推薦一個在線時間戳轉換工具 點擊跳轉-鴿鴿在線工具 這個工具除了時間戳轉換,到首頁還能選擇使用很多其他小工具,歡迎使用

WPF之面板特性

文章目錄 1. 概述2. WPF布局系統基礎2.1 布局過程概述2.2 布局重新計算的觸發條件2.3 布局重新計算的核心方法 3. WPF內置面板類型及特性3.1 面板類型概覽3.2 Canvas面板3.3 StackPanel面板3.4 WrapPanel面板3.5 DockPanel面板3.6 Grid面板3.7 UniformGrid面板3.8 Virtualizing…

【技術追蹤】通過潛在擴散和先驗知識增強時空疾病進展模型(MICCAI-2024)

向擴散模型中引入先驗知識,實現疾病進展預測,擴散模型開始細節作業了~ 論文:Enhancing Spatiotemporal Disease Progression Models via Latent Diffusion and Prior Knowledge 代碼:https://github.com/LemuelPuglisi/BrLP 0、摘…

[ linux-系統 ] 常見指令2

1. man 指令 語法:man [選項] 命令 功能:查看聯機手冊獲取幫助。 選項說明-k根據關鍵字搜索聯機幫助。num只在第num章節找。-a顯示所有章節的內容。 man是 Unix 和類 Unix 系統中的一個命令,用于查看操作系統和軟件的手冊頁面(ma…

STL之stackqueue

stack的介紹(可以想象成棧) 1.stack是一種容器適配器,專門用在具有后進先出操作的上下文環境中,其刪除只能從容器的一端進行元素的插入與提取操作 2.stack是作為容器適配器被實現的,容器適配器即是對特點類封裝作為其…

【現代深度學習技術】現代循環神經網絡06:編碼器-解碼器架構

【作者主頁】Francek Chen 【專欄介紹】 ? ? ?PyTorch深度學習 ? ? ? 深度學習 (DL, Deep Learning) 特指基于深層神經網絡模型和方法的機器學習。它是在統計機器學習、人工神經網絡等算法模型基礎上,結合當代大數據和大算力的發展而發展出來的。深度學習最重…

宏電全新升級單北斗5G電力DTU,為每一公里電力線路注入可靠連接

在配網自動化改造與數字化轉型的雙重驅動下,宏電股份推出全新升級版H7710-DLWZ系列5G電力DTU,聚焦配網通信鏈路冗余、國產自主可控、復雜環境適應性三大核心需求,為配電自動化、臺區智能運維、分布式能源接入等場景提供高可靠通信底座。 國產…

學習海康VisionMaster之間距檢測

一:進一步學習了 今天學習下VisionMaster中的間距檢測工具:主要類似于卡尺工具,測量物體的長度或者寬度或者間距 二:開始學習 1:什么是間距檢測? 間距測量模塊用于檢測兩特征邊緣之間的間距,首…

藍橋杯 18. 積木

積木 原題目鏈接 題目描述 小明用積木搭了一個城堡。為了方便,小明使用的是大小相同的正方體積木,并將其搭建在一個 n 行 m 列的方格圖上。每個積木占據方格圖中的一個小格子。 小明的城堡是立體的,可以將積木壘在其他積木上。當某個格子…

C++負載均衡遠程調用學習之基礎TCP服務

目錄 1.LARS課程模塊介紹 2.LARS的功能演示機場景作用 3.LARS的reactor框架的組成部分 4.Lars_reactor的項目目錄構建 5.Lars_tcp_server的基礎服務開發 6.Lars_tcp_server的accept實現 7.LarsV0.1總結 1.LARS課程模塊介紹 2.LARS的功能演示機場景作用 # Lars系統開發 …

EasyExcel使用總結

EasyExcel 文章目錄 EasyExcel1、導入1.1、基本方式導入1.導入依賴2. 加載源文件基本語法 3. 讀取數據行4. 讀取結果 1.2、模型映射導入1.定義實體映射類2. 操作讀取基本語法 3. 讀取數據行4. 讀取結果 1.3、導入類型轉換器語法 1.4、導入監聽器基本語法: 1.5、多行…

【愚公系列】《Manus極簡入門》022-藝術創作顧問:“藝術靈感使者”

🌟【技術大咖愚公搬代碼:全棧專家的成長之路,你關注的寶藏博主在這里!】🌟 📣開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主! &#x1f…

藍橋杯15屆國賽 最小字符串

問題描述 給定一個長度為 N 且只包含小寫字母的字符串 S,和 M 個小寫字母 c1,c2,...,cM?。現在你要把 M 個小寫字母全部插入到字符串 S 中,每個小寫字母都可以插入到任意位置。請問能得到的字典序最小的字符串是什么? 輸入格式 第一行包含…

【東楓科技】代理英偉達產品:DPU

NVIDIA BlueField-3 DPU 400Gb/s 基礎設施計算平臺 NVIDIA BlueField -3 數據處理單元 (DPU) 是第三代基礎設施計算平臺,使企業能夠構建從云端到核心數據中心再到邊緣的軟件定義、硬件加速的 IT 基礎設施。借助 400Gb/s 以太網或 NDR 400Gb/s InfiniBand 網絡連接…

依圖科技C++后端開發面試題及參考答案

請介紹你所了解的分布式系統 分布式系統是由多個獨立的計算節點通過網絡連接組成的系統,這些節點共同協作以完成特定的任務。分布式系統的設計目標在于提升系統的性能、可擴展性、可靠性和容錯性。 從性能方面來看,分布式系統能夠把任務分配到多個節點…

Python cv2濾波與模糊處理:從原理到實戰

在圖像處理領域,濾波與模糊是預處理階段的兩大核心操作,既能消除噪聲干擾,又能實現藝術化效果。本文將結合OpenCV的cv2庫,系統講解濾波與模糊的原理及Python實現,帶你從理論到實戰全面掌握這項技術。 一、濾波與模糊的…

在 Laravel 12 中實現 WebSocket 通信時進行身份驗證

在 Laravel 12 中實現 WebSocket 通信時,若需在身份驗證失敗后主動斷開客戶端連接,需結合 頻道認證機制 和 服務端主動斷連操作。以下是具體實現步驟: 一、身份驗證流程設計 WebSocket 連接的身份驗證通常通過 私有頻道(Private …

FPGA----基于ZYNQ 7020實現petalinux并運行一個程序

引言:上一節我們講到了使用Alinx 7020b自帶的sd卡中的petalinux進行epics的編譯,但此種方案個性化程度不足。如:我們項目需要FPGA側的配合,那么我們需要重新編譯petalinx。 注意:本文的知識點來自下面兩篇文章&#x…