Soft Mask(软遮罩)技术
一、概述
Soft Mask是一种技术或工具,主要用于实现平滑的边缘遮罩效果。它在不同的应用领域有不同的实现和定义
1.在Unity UI设计中
SoftMask是一款专为Unity设计的高级遮罩工具,它突破了传统Mask的限制,提供了更为灵活和细腻的UI遮罩解决方案。与传统的硬边遮罩效果不同,SoftMask通过利用图像的灰度信息,能够创造出平滑的边缘过渡效果,使得遮罩区域与非遮罩区域之间的过渡更加自然流畅。这种技术尤其适用于需要细腻视觉体验的UI设计中,如淡入淡出、模糊边界或是复杂形状的过渡效果。
2.在图像处理和机器学习领域
Soft Mask也指一种软掩码技术,它在图像处理和机器学习中用于实现像素级别的掩码效果。与传统的硬掩码(Hard Mask)相比,软掩码允许部分透明度,使得被掩码区域的边缘更加平滑和自然。这种技术可以用于图像分割、目标检测等任务中,以提高模型的性能和准确性。
3.在自然语言处理(NLP)领域
Soft-Masked BERT是一种改进的BERT模型,它在处理Masked Language Model任务时,采用软掩盖(Soft Masking)的方式,而不是直接替换为特殊的[MASK]标记。这种方式允许模型根据上下文信息进行更为准确的预测,同时保留了原始词的词向量表示,提高了预测的准确率。
4.在图神经网络(GNN)中
Soft Mask也指一种用于图神经网络的自适应子结构提取技术。这种技术通过掩码机制提取所需的子图,定义在一个连续的空间中,以保持可微性并表征不同部分的权重。与现有的子图或分层表示学习方法和图池化操作相比,soft-mask GNN层不受固定样本或丢弃率的限制,因此可以更灵活地提取任意大小的子图。
二、图像处理中的soft max
在图像处理中,Soft Mask(软遮罩)是一种技术,它允许创建平滑过渡的遮罩区域,与传统的硬边遮罩相比,Soft Mask可以产生更加自然的边缘羽化效果。以下是Soft Mask在图像处理中的一些详细特点和应用:
1.灰度控制
Soft Mask通过图像的灰度值来自动计算遮罩的透明度,实现从完全不透明到完全透明的平滑过渡。这个示例展示了如何根据灰度图像计算软遮罩的透明度。灰度图像的每个像素值被用来确定遮罩的透明度,从而实现从完全不透明到完全透明的平滑过渡。
import cv2
import numpy as np# 计算软遮罩透明度的函数
def calculate_soft_mask(img_gray):# 将灰度值归一化到[0, 1]区间,用于计算透明度alpha_channel = cv2.normalize(img_gray, None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_32F)return alpha_channel# 读取灰度图像
img_gray = cv2.imread('path_to_image', cv2.IMREAD_GRAYSCALE)
soft_mask = calculate_soft_mask(img_gray)
在这段代码中,我们首先导入了cv2
和numpy
库。calculate_soft_mask
函数接受一个灰度图像,使用cv2.normalize
函数将其归一化到0到1的范围内,这个范围代表从完全透明到完全不透明的透明度值。
2.自定义遮罩效果
它支持高度定制化的遮罩形状和过渡效果,满足各种创意需求。在这段代码中,我们首先导入了cv2
和numpy
库。calculate_soft_mask
函数接受一个灰度图像,使用cv2.normalize
函数将其归一化到0到1的范围内,这个范围代表从完全透明到完全不透明的透明度值。
import numpy as np
import matplotlib.pyplot as plt# 创建一个自定义形状的软遮罩
def create_custom_soft_mask(shape_size, radius):# 创建一个空白图像y, x = np.ogrid[:shape_size[0], :shape_size[1]]mask = (x - shape_size[1]//2)**2 + (y - shape_size[0]//2)**2 <= radius**2return mask.astype(float)# 创建一个圆形软遮罩
custom_soft_mask = create_custom_soft_mask((512, 512), 100)
plt.imshow(custom_soft_mask, cmap='gray')
plt.show()
这段代码中,create_custom_soft_mask
函数生成了一个圆形的软遮罩。我们使用np.ogrid
创建了一个坐标网格,然后根据圆的方程计算每个点是否在圆内,最后将结果转换为浮点数类型,以便后续处理。
3.性能优化
Soft Mask针对Unity引擎进行了特别优化,确保在保持高质量显示的同时不影响游戏性能。这个示例是一个Unity Shader代码片段,展示了如何在Unity中实现Soft Mask效果。这种优化确保在保持高质量显示的同时不影响游戏性能。
// Unity Shader代码片段
Shader "Custom/SoftMaskShader" {Properties {_MainTex ("Texture", 2D) = "white" {}_SoftMask ("Soft Mask", 2D) = "white" {}}SubShader {Tags { "RenderType"="Opaque" }LOD 100Pass {CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata {float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f {float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};sampler2D _MainTex;sampler2D _SoftMask;float4 _SoftMask_ST;v2f vert (appdata v) {v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}fixed4 frag (v2f i) : SV_Target {fixed4 col = tex2D(_MainTex, i.uv);fixed alpha = tex2D(_SoftMask, i.uv).r;return fixed4(col.rgb, col.a * alpha);}ENDCG}}
}
这段Shader代码定义了一个自定义的Shader,它接受两个纹理:一个是主纹理_MainTex
,另一个是软遮罩纹理_SoftMask
。在片段着色器中,我们使用tex2D
来采样这两个纹理,并根据软遮罩的红色通道值来调整主纹理的透明度。
4.易于集成
提供简单的API调用和直观的设置,让开发者快速将Soft Mask融入现有项目。这个示例展示了如何通过简单的API调用来将软遮罩应用到图像上。这种方法易于集成到现有的图像处理流程中。
def apply_soft_mask(image, soft_mask):# 应用软遮罩到图像masked_image = cv2.bitwise_and(image, image, mask=soft_mask)return masked_image# 假设img_color是三通道彩色图像
img_color = cv2.imread('path_to_image')
masked_img = apply_soft_mask(img_color, soft_mask)
在这段代码中,apply_soft_mask
函数使用cv2.bitwise_and
函数将软遮罩应用到彩色图像上。这个函数需要两个输入:一个是彩色图像,另一个是软遮罩。结果是应用了软遮罩的图像。
5.广泛的应用场景
Soft Mask不仅限于UI元素的遮罩,也可应用于2D/3D场景中的特效制作,增加游戏或应用的艺术感。这个示例展示了如何在2D/3D场景中应用Soft Mask技术,以增强视觉效果。这种技术可以用于创建各种特效,如光影效果、环境遮挡等。
def apply_soft_mask_to_panorama(panorama, soft_mask):# 将软遮罩应用到全景图像上masked_panorama = panorama * soft_mask[..., np.newaxis]return masked_panorama# 读取全景图像和软遮罩
panorama_img = cv2.imread('path_to_panorama')
panorama_soft_mask = cv2.imread('path_to_soft_mask', cv2.IMREAD_GRAYSCALE)
panorama_soft_mask = calculate_soft_mask(panorama_soft_mask)# 应用软遮罩
masked_panorama = apply_soft_mask_to_panorama(panorama_img, panorama_soft_mask)
这段代码中,apply_soft_mask_to_panorama
函数将软遮罩应用到全景图像上。我们通过将全景图像与软遮罩相乘来实现这一点,其中软遮罩被扩展为与全景图像相同的维度。
6.实现原理
Soft Mask插件可能通过编写自定义的Shader程序来实现其遮罩效果。Shader能够处理图像的渲染流程,在像素级别上根据遮罩图像来混合不同的透明度,从而达到平滑过渡的效果。这个示例是一个Unity Shader程序,它展示了如何在Shader层面实现Soft Mask效果。这种方法允许在渲染过程中动态地应用软遮罩。
// Unity Shader代码片段,用于实现Soft Mask效果
Shader "Custom/SoftMaskEffect" {Properties {_MainTex ("Base (RGB)", 2D) = "white" {}_SoftMaskTex ("Soft Mask (A)", 2D) = "white" {}}SubShader {Tags { "RenderType"="Opaque" }LOD 100Pass {CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata {float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f {float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};sampler2D _MainTex;sampler2D _SoftMaskTex;v2f vert (appdata v) {v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}fixed4 frag (v2f i) : SV_Target {fixed4 mainColor = tex2D(_MainTex, i.uv);fixed4 softMaskColor = tex2D(_SoftMaskTex, i.uv);mainColor.a *= softMaskColor.a; // 只修改透明度通道return mainColor;}ENDCG}}
}
这段Shader代码定义了一个自定义的Shader,它接受两个纹理:一个是主纹理_MainTex
,另一个是软遮罩纹理_SoftMaskTex
。在片段着色器中,我们使用tex2D
来采样这两个纹理,并根据软遮罩的透明度值来调整主纹理的透明度。这样,我们可以实现在Shader层面的软遮罩效果,这对于实时渲染应用非常有用。
三、实际应用
1.UI元素的透明效果
通过Soft Mask可以创建更为自然的UI元素透明过渡,使得界面更加柔和、有层次。在UI元素中实现透明效果,通常可以通过图形库或者游戏引擎提供的API来完成。这里我将提供一个使用Unity引擎中的Shader来实现UI元素透明效果的示例代码。这个Shader将会使用软遮罩技术来创建平滑的透明度过渡。
Shader "Custom/SoftMaskUIShader"
{Properties{_MainTex ("Texture", 2D) = "white" {}_SoftMask ("Soft Mask", 2D) = "white" {}_Opacity ("Opacity", Range(0, 1)) = 1.0}SubShader{Tags { "RenderType"="Transparent" "Queue"="Transparent" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};sampler2D _MainTex;sampler2D _SoftMask;float _Opacity;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}fixed4 frag (v2f i) : SV_Target{fixed4 col = tex2D(_MainTex, i.uv);fixed4 mask = tex2D(_SoftMask, i.uv);col.a *= _Opacity; // Apply opacitycol.rgb = lerp(fixed3(0, 0, 0), col.rgb, mask.r); // Soft mask transitionreturn col;}ENDCG}}
}
这个Shader接受两个纹理输入:_MainTex
是UI元素的主纹理,_SoftMask
是软遮罩纹理。_Opacity
属性用于控制整体透明度。在Properties块中,我们定义了两个采样器属性_MainTex
和_SoftMask
,以及一个范围在0到1之间的_Opacity
属性。在SubShader块中,我们使用Tags
指定了渲染类型为透明,并设置了透明度队列。在Pass中,我们定义了顶点和片段着色器。vert
函数将顶点数据从对象空间转换到剪辑空间。frag
函数是片段着色器,它采样主纹理和软遮罩纹理,然后根据软遮罩的红色通道值和_Opacity
属性来混合颜色,实现透明效果。
2.背景模糊效果
在设计游戏或应用的背景时,通过Soft Mask可以对特定区域进行模糊处理,而不影响其他元素。在游戏或应用中使用Soft Mask对背景特定区域进行模糊处理,通常涉及到两个步骤:首先创建一个Soft Mask来定义哪些区域需要模糊处理,然后使用这个Soft Mask来应用模糊效果。以下是一个Unity中的示例,展示如何实现这一效果。
Shader "Custom/SoftMaskBlurShader"
{Properties{_MainTex ("Base (RGB)", 2D) = "white" {}_SoftMask ("Soft Mask (A)", 2D) = "white" {}_BlurSize ("Blur Size", Range(0, 10)) = 1.0}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};sampler2D _MainTex;sampler2D _SoftMask;float _BlurSize;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}fixed4 frag (v2f i) : SV_Target{fixed4 col = tex2D(_MainTex, i.uv);fixed4 mask = tex2D(_SoftMask, i.uv);// 仅对Soft Mask指定的区域应用模糊if (mask.a > 0.5){float2 uvOffset = float2(_BlurSize, _BlurSize);fixed4 blurColor = tex2D(_MainTex, i.uv + uvOffset) + tex2D(_MainTex, i.uv - uvOffset);blurColor += tex2D(_MainTex, i.uv + float2(-_BlurSize, _BlurSize)) + tex2D(_MainTex, i.uv + float2(_BlurSize, -_BlurSize));blurColor += tex2D(_MainTex, i.uv + float2(-_BlurSize, -_BlurSize));blurColor /= 5.0;col = blurColor;}return col;}ENDCG}}
}
这个Shader接受两个纹理输入:_MainTex
是背景纹理,_SoftMask
是软遮罩纹理。_BlurSize
属性用于控制模糊的大小。
3.视觉效果强化
创建朦胧的图像遮罩层,如烟雾或光线散射效果,可以通过在Shader中使用Soft Mask技术来实现。以下是一个Unity Shader示例,展示如何使用Soft Mask来创建这样的效果。
Shader "Custom/AtmosphericBlurShader"
{Properties{_MainTex ("Base (RGB)", 2D) = "white" {}_SoftMask ("Soft Mask (A)", 2D) = "white" {}_BlurIntensity ("Blur Intensity", Range(0, 10)) = 1.0}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};sampler2D _MainTex;sampler2D _SoftMask;float _BlurIntensity;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}fixed4 frag (v2f i) : SV_Target{fixed4 col = tex2D(_MainTex, i.uv);fixed4 mask = tex2D(_SoftMask, i.uv);// 仅对Soft Mask指定的区域应用朦胧效果if (mask.a > 0.5){float2 uvOffset = float2(_BlurIntensity, _BlurIntensity);fixed4 blurColor = tex2D(_MainTex, i.uv + uvOffset);blurColor += tex2D(_MainTex, i.uv - uvOffset);blurColor += tex2D(_MainTex, i.uv + float2(-_BlurIntensity, _BlurIntensity));blurColor += tex2D(_MainTex, i.uv + float2(_BlurIntensity, -_BlurIntensity));blurColor += tex2D(_MainTex, i.uv + float2(-_BlurIntensity, -_BlurIntensity));blurColor /= 5.0;// 混合原始颜色和模糊颜色以创建朦胧效果col = lerp(col, blurColor, mask.a);}return col;}ENDCG}}
}
这个Shader接受两个纹理输入:_MainTex
是场景纹理,_SoftMask
是软遮罩纹理。_BlurIntensity
属性用于控制朦胧效果的强度。
相关文章:

Soft Mask(软遮罩)技术
一、概述 Soft Mask是一种技术或工具,主要用于实现平滑的边缘遮罩效果。它在不同的应用领域有不同的实现和定义 1.在Unity UI设计中 SoftMask是一款专为Unity设计的高级遮罩工具,它突破了传统Mask的限制,提供了更为灵活和细腻的UI遮罩解决方案…...

ESP32开发之freeRTOS的互斥量
什么是互斥量互斥量的应用场合互斥量的API函数基本代码结构互斥量使用举例递归锁递归锁举例总结什么是互斥量 在freeRTOS中,多个任务访问一块共享资源,会产生竞争现象。 比如马路上只有一个很早以前的电话亭,A、B都想要打电话,然后他们就开始打架了。但是如果A先进去了然…...

K8s 资源分类
K8s 资源分类图谱 内置资源的分类 1、工作负载相关: Pod:最小的部署单元,包含一个或多个容器。 Deployment:管理无状态应用的副本和滚动更新。 StatefulSet:适用于有状态应用(如数据库)&#…...
Python连接云端服务器:基于Paramiko库的实践与问题剖析
引言 在软件开发与运维场景中,借助Python连接云端服务器进行操作极为常见。Paramiko库作为实现SSHv2协议的有力工具,为Python与云端服务器的交互搭建了桥梁。本文将深入介绍使用Paramiko连接云端Linux服务器的方法,并剖析过程中可能遭遇的问…...

基于 Flask的深度学习模型部署服务端详解
基于 Flask 的深度学习模型部署服务端详解 在深度学习领域,训练出一个高精度的模型只是第一步,将其部署到生产环境中,为实际业务提供服务才是最终目标。本文将详细解析一个基于 Flask 和 PyTorch 的深度学习模型部署服务端代码,帮…...
洛谷 P1850 [NOIP 2016 提高组] 换教室
题目传送门 前言 终于自己想出概率期望 d p dp dp 的状态了,但是依旧没能相对转移方程。(招笑) 暴力 这题部分分和特殊情况分给的挺多的,所以先拿部分分。 一、思路 先跑一边 F l o y d Floyd Floyd 最短路求出两点间最短距…...
C#生成二维码和条形码
C# 实现二维码和条形码生成:从入门到实战 文章目录 C# 实现二维码和条形码生成:从入门到实战一、引言二、准备工作2.1 开发环境搭建2.2 引入相关库 三、生成条形码3.1 条形码基本概念3.2 使用[ZXing.Net](https://ZXing.Net)生成条形码3.2.1 核心代码实现…...

【金仓数据库征文】金仓数据库 KES:MySQL 迁移实用指南
我们都知道,现在企业数字化转型那可是势在必行,数据库迁移这事儿就变得特别关键。金仓数据库的 KingbaseES(简称 KES),就给咱从 MySQL 往 KES 迁移数据库提供了一套超好用的方案。下面咱就讲下 咋用金仓数据库来完成这…...

多态(c++详细版)
一.多态 1.1 多态的概念 多态(polymorphism)的概念:通俗来说,就是多种形态。多态分为编译时多态(静态多态)和运⾏时多态(动态多态),这⾥我们重点讲运⾏时多态,编译时多态(静态多态)和运⾏时多态(动态多态)。编译时多态(静态多态)主…...
内存泄漏系列专题分析之八:高通相机CamX内存泄漏内存占用分析--通用ION(dmabuf)内存拆解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:内存泄漏系列专题分析之七:高通相机CamX--Android通用ION(dmabuf)内存分配和释放原理 这一篇我们开始讲: 内存泄漏系列专题分析之八:高通相机CamX内存泄漏&内存占用分析--通用ION(dmabuf)内…...
后端项目进度汇报
项目概述 本项目致力于构建一个先进的智能任务自动化平台。其核心技术是一套由大型语言模型(LLM)驱动的后端系统。该系统能够模拟一个多角色协作的团队,通过一系列精心设计或动态生成的处理阶段,来高效完成各种复杂任务ÿ…...

数据结构——二叉树和堆(万字,最详细)
目录 1.树 1.1 树的概念与结构 1.2 树相关的术语 1.3 树的表示法 2.二叉树 2.1 概念与结构 2.2 特殊的二叉树 2.2.1 满二叉树 2.2.2 完全二叉树 2.3 二叉树存储结构 2.3.1 顺序结构 2.3.2 实现顺序结构二叉树 2.3.2.1 堆的概念与结构 2.3.2. 2 堆的插入与删除数据…...

MATLAB基于格拉姆角场与2DCNN-BiGRU的轴承故障诊断模型
本博客来源于CSDN机器鱼,未同意任何人转载。 更多内容,欢迎点击本专栏目录,查看更多内容。 目录 0 引言 1 格拉姆角场原理 2 2DCNN-BiGRU网络结构 3 应用实例 3.1 数据准备 3.2 格拉姆角场数据提取 3.3 网络模型搭建-重中之重 3.4 …...

正点原子IMX6U开发板移植Qt时出现乱码
移植Qt时出现乱码 1、前言2、问题3、总结 1、前言 记录一下正点原子IMX6U开发板移植Qt时出现乱码的解决方法,方便自己日后回顾,也可以给有需要的人提供帮助。 2、问题 用正点原子IMX6U开发板移植Qt时移植Qt后,sd卡里已经存储了Qt的各种库&…...

JVM局部变量表和操作数栈的内存布局
局部变量表和操作数栈 首先看一段Java源码 public class Add_Sample{public int add(int i, int j){int k 100;int result i j k;return result;}public static void main(String[] args){int result new Add_Sample().add(10,20);System.out.println(result);} }使用ja…...

Mockoon 使用教程
文章目录 一、简介二、模拟接口1、Get2、Post 一、简介 1、Mockoon 可以快速模拟API,无需远程部署,无需帐户,免费,跨平台且开源,适合离线环境。 2、支持get、post、put、delete等所有格式。 二、模拟接口 1、Get 左…...

使用 IDEA + Maven 搭建传统 Spring MVC 项目的详细步骤(非Spring Boot)
搭建Spring MVC项目 第一步:创建Maven项目第二步:配置pom.xml第三步:配置web.xml第四步:创建Spring配置文件第五步:创建控制器第六步:创建JSP视图第七步:配置Tomcat并运行目录结构常见问题解决与…...
以下是在 Ubuntu 上的几款PDF 阅读器,涵盖轻量级、功能丰富和特色工具:
默认工具:Evince(GNOME 文档查看器) 特点:Ubuntu 预装,轻量快速,支持基本标注和书签。 安装:已预装,或手动安装: sudo apt install evince功能全面:Okular&…...

3.2.3 掌握RDD转换算子 - 4. 按键归约算子 - reduceByKey()
在本节课中,我们深入学习了Spark RDD的reduceByKey()算子。reduceByKey()主要用于处理元素为(key, value)形式的RDD,能够将相同key的元素聚集并合并,最终返回一个新RDD,其元素类型与原RDD保持一致。通过案例演示,我们首…...
AI领域的MCP(Model-Centric Paradigm)
1. 什么是MCP(Model-Centric Paradigm)? MCP(Model-Centric Paradigm)是人工智能开发中的一种核心理念,强调以模型的优化与改进作为主要驱动因素来提升AI系统的表现。在MCP模式下,开发者专注于…...

Pandas比MySQL快?
知乎上有人问,处理百万级数据,Python列表、Pandas、Mysql哪个更快? Pands是Python中非常流行的数据处理库,拥有大量用户,所以拿它和Mysql对比也是情理之中。 实测来看,MySQL > Pandas > Python列表…...
模拟内存管理
文章目录 1. 实验六:内存管理2. 记录内存空间使用情况2.1 全局参数2.2 内存空间相关参数2.3 关键结构体定义2.4 内存系统初始化 3. 记录空闲分区3.1 采用位图的方式记录物理内存中的空闲帧3.1.1 记录方式3.1.2 举例分析 3.2 主要操作3.2.1 初始化空闲帧:…...
大模型调优方法与注意事项
大模型调优(Fine-tuning)是指对预训练的大型语言模型(如GPT、BERT、LLaMA等)进行二次训练,使其适应特定任务或领域的过程。以下是调优的关键步骤、方法和注意事项: 一、调优的核心步骤 任务定义与数据准备 …...

简易的考试系统设计(Web实验)
简易的考试系统设计(Web实验) 1.实验内容与设计思想(一)实验需求(二)设计思路 2.代码展示3.实验小结 1.实验内容与设计思想 (一)实验需求 1.编写两个页面程序,一个HTML…...
【嵌入式开发-SDIO】
嵌入式开发--SDIO ■ SDIO-简介■■■■■ ■ SDIO-简介 SDIO(Secure Digital Input and Output),即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、…...

基于Kubernetes的Apache Pulsar云原生架构解析与集群部署指南(上)
#作者:闫乾苓 文章目录 概念和架构概述主要特点消息传递核心概念Pulsar 的消息模型Pulsar 的消息存储与分发Pulsar 的高级特性架构BrokerBookKeeperZooKeeper 概念和架构 概述 Pulsar 是一个多租户、高性能的服务器到服务器消息传递解决方案。Pulsar 最初由雅虎开…...
车载网络TOP20核心概念科普
一、基础协议与总线技术 CAN总线 定义:控制器局域网,采用差分信号传输,速率最高1Mbps,适用于实时控制(如动力系统)。形象比喻:如同“神经系统”,负责传递关键控制信号。 LIN总线 定…...

使用JAVA对接Deepseek API实现首次访问和提问
一、标题 参考:https://www.cnblogs.com/saoge/p/18866776 使用JAVA对接Deepseek API实现首次访问和 提问:我有50万能做什么小本生意,举例3个! 二、代码 import java.io.BufferedReader; import java.io.InputStreamReader; import java.…...

【C语言】文件操作(续)
目录 复习: 一⽂件的顺序读写 例子: 前言: 在上篇文章中介绍了文件的类型,文件指针,流,操作的函数。 在本篇文章继续为大家带来文件细节分享,如 顺序读写等等。 复习: fopen是…...

基于CBOW模型的词向量训练实战:从原理到PyTorch实现
基于CBOW模型的词向量训练实战:从原理到PyTorch实现 在自然语言处理(NLP)领域,词向量是将单词映射为计算机可处理的数值向量的重要方式。通过词向量,单词之间的语义关系能够以数学形式表达,为后续的文本分…...