当前位置: 首页 > news >正文

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)

        在这段代码中,我们首先导入了cv2numpy库。calculate_soft_mask函数接受一个灰度图像,使用cv2.normalize函数将其归一化到0到1的范围内,这个范围代表从完全透明到完全不透明的透明度值。

2.自定义遮罩效果

        它支持高度定制化的遮罩形状和过渡效果,满足各种创意需求。在这段代码中,我们首先导入了cv2numpy库。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是一种技术或工具&#xff0c;主要用于实现平滑的边缘遮罩效果。它在不同的应用领域有不同的实现和定义 1.在Unity UI设计中 SoftMask是一款专为Unity设计的高级遮罩工具&#xff0c;它突破了传统Mask的限制&#xff0c;提供了更为灵活和细腻的UI遮罩解决方案…...

683SJBH基于J2EE的广州旅游管理系统

第1章  绪论 课题背景 自互联网internet成为一种革命性的大众媒体以来&#xff0c;其发展速度之快令人惊叹。而作为世界最大朝阳产业的旅游&#xff0c;当它与电子商务这一新兴模式相结合时&#xff0c;其潜藏的商业价值表露无遗。根据CNN&#xff08;美国有线电视新闻网&…...

关于STM32 SPI收发数据异常

问题描述&#xff1a; STM32主板做SPI从机&#xff0c;另一块linux主板做主机&#xff0c;通信的时候发现从机可以正确接收到主机数据&#xff0c;但是主机接收从机数据时一直不对&#xff0c;是随机值。 问题原因&#xff1a; 刚发现问题的时候&#xff0c;用逻辑分析仪抓包…...

雅努斯问题(Janus Problem)及解决方案

一、雅努斯简介 雅努斯&#xff08;Janus&#xff09;是罗马神话中的门神&#xff0c;也是罗马人的保护神。他具有前后两个面孔或四方四个面孔&#xff0c;象征开始。雅努斯被认为是起源神&#xff0c;执掌着开始和入门&#xff0c;也执掌着出口和结束&#xff0c;因此他又被成…...

ACE-Step:扩散自编码文生音乐基座模型快速了解

ACE-Step 模型速读 一、模型概述 ACE-Step 是一款由 ACE Studio 和 StepFun 开发的新型开源音乐生成基础模型。它通过整合基于扩散的生成方式、Sana 的深度压缩自编码器&#xff08;DCAE&#xff09;以及轻量级线性变换器&#xff0c;在音乐生成速度、音乐连贯性和可控性等方…...

【论文阅读】在调制分类中针对对抗性攻击的混合训练时和运行时防御

A Hybrid Training-Time and Run-Time Defense Against Adversarial Attacks in Modulation Classification 摘要 在深度学习在包括计算机视觉和自然语言处理在内的许多应用中的卓越性能的推动下,最近的几项研究侧重于应用深度神经网络来设计未来几代无线网络。然而,最近的…...

HDMI布局布线

1 HDMI简介 高清多媒体接口(High Definition Multimedia Interface),简称:HDMI,是一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号。随着技术的不断提升,HDMI的传输速率也不断的提升,HDMI2.0最大传输速率可达14.4Gbit/s,HDMI2.1最大传输数据速率可达42.6Gbit/s…...

国家信息中心:基于区块链和区块链服务网络(BSN)的可信数据空间建设指引

推荐语&#xff1a; 可信数据空间包含场景应用、生态主体、数据资源、规则机制、技术系统五大部分。《基于区块链和区块链服务网络&#xff08;BSN&#xff09;的可信数据空间建设指引》聚焦可信数据空间的单个数据空间中的场景应用、数据资源、规则机制及技术系统四大核心要点…...

分区器(1)

1. 需求分析 在分布式计算中&#xff0c;Map任务通常会产生大量的中间结果&#xff0c;这些结果需要被分配到不同的Reducer任务中进行进一步处理。分区器的作用是根据一定的规则将中间结果分配到不同的分区&#xff08;Partition&#xff09;&#xff0c;从而确保数据能够被正…...

设计一个分布式系统:要求全局消息顺序,如何使用Kafka实现?

一、高吞吐低延迟 Kafka 集群设计要点 1. 分区策略优化 // 计算合理分区数公式&#xff08;动态调整&#xff09; int numPartitions max(Tp, Tc) / min(Tp, Tc) // Tp生产者吞吐量 Tc消费者吞吐量建议初始按业务键&#xff08;如订单ID&#xff09;哈希分区单分区吞吐建议…...

大模型工具与案例:云服务器部署dify(1)

如果您可以装wsl&#xff0c;可以在本机部署参考windows安装dify-江鸟阁长 因为笔者的windows电脑不可以安装wsl&#xff0c;所以本文会带大家在linux云服务器上部署。目前很多厂家都推出了一键部署&#xff0c;但是价格也有差 阿里云 通用型服务器 70rmb/月 华为云比较便宜&a…...

屏蔽力 | 在复杂世界中从内耗到成长的转变之道

注&#xff1a;本文为“屏蔽力”相关文章合辑。 略作重排&#xff0c;未全整理。 世上的事再复杂&#xff0c;不外乎这三种 原创 小鹿 读者 2022 年 12 月 02 日 18 : 27 甘肃 文 / 小鹿 在这世上&#xff0c;每天都有大事小事、琐事烦事。我们总为世事奔波忙碌&#xff0c;…...

信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十一)

个人笔记整理---仅供参考 第十一章项目成本管理 11.1管理基础 11.2项目成本管理过程 11.3规划成本管理 11.4估算成本 11.5制定预算 11.6控制成本...

大数据技术全景解析:Spark、Hadoop、Hive与SQL的协作与实战

引言&#xff1a;当数据成为新时代的“石油” 在数字经济时代&#xff0c;数据量以每年50%的速度爆发式增长。如何高效存储、处理和分析PB级数据&#xff0c;成为企业竞争力的核心命题。本文将通过通俗类比场景化拆解&#xff0c;带你深入理解四大关键技术&#xff1a;Hadoop、…...

Linux 驱动开发步骤及 SPI 设备驱动移植示例

Linux 驱动开发的一般步骤 硬件了解&#xff1a;深入研究目标硬件设备的工作原理、寄存器映射、电气特性、中断机制等。例如&#xff0c;若开发网卡驱动&#xff0c;需清楚网卡如何与网络介质交互、数据包的收发流程、硬件缓冲区的管理等。只有透彻理解硬件&#xff0c;才能编…...

直播数据大屏是什么?企业应如何构建直播数据大屏?

目录 一、直播数据大屏是什么&#xff1f; 1. 定义 2. 特点 ​编辑二、企业如何构建直播数据大屏&#xff1f; &#xff08;一&#xff09;明确需求和目标 &#xff08;二&#xff09;数据采集和整合 &#xff08;三&#xff09;选择合适的可视化工具 &#xff08;四&a…...

Vue与Python的深度整合:构建现代Web应用的全栈范式

在前后端分离架构成为行业标准的今天&#xff0c;Vue.js与Python的组合为全栈开发提供了高效且灵活的技术方案。这种组合不仅继承了Vue组件化开发的敏捷性&#xff0c;更借助Python后端框架&#xff08;如Django/Flask&#xff09;的强大生态&#xff0c;实现了从原型设计到生产…...

移动二维矩阵

1、题目描述 小红获得了一个 n行 m 列的二维字符矩阵&#xff0c;现在她要对这个字符矩阵进行向左循环移位。 向左循环移位规则如下&#xff1a;每一行的每一个字母(除了第一个字母)都向左边移动一位。第一行第一个的字母移动到最后一行的最后一个位置&#xff0c;其它行的第一…...

RabbitMq学习(第一天)

文章目录 1、mq(消息队列)概述2、RabbitMQ环境搭建3、java基于AMQP协议操作RabbitMQ4、基于Spring AMQP操作RabbitMQ5、代码中创建队列与交换机①、配置类创建②、基于RabbitListener注解创建 6、RabbitMQ详解①、work模型②、交换机1、Fanout(广播)交换机2、Direct(定向)交换机…...

基于RK3568多功能车载定位导航智能信息终端

基于安卓系统开发集成5G和4G模块&#xff0c;GPS/BD双模定位模块&#xff08;高精度差分惯导&#xff09;、WIFI模块&#xff0c;蓝 牙模块&#xff0c;RFID模块&#xff0c;音频播放&#xff0c;视频信号输入&#xff08;AHD或CVBS&#xff09;模块等多功能车载定位导航智能信…...

Facebook的元宇宙新次元:社交互动如何改变?

科技的浪潮正将我们推向一个全新的时代——元宇宙时代。Facebook&#xff0c;这个全球最大的社交网络平台&#xff0c;已经宣布将公司名称更改为 Meta&#xff0c;全面拥抱元宇宙概念。那么&#xff0c;元宇宙究竟是什么&#xff1f;它将如何改变我们的社交互动方式呢&#xff…...

【上位机——MFC】对话框

对话框的使用 1.添加对话框资源 2.定义一个自己的对话框类(CMyDlg)&#xff0c;管理对话框资源&#xff0c;派生自CDialog或CDialogEx均可 对话框架构 #include <afxwin.h> #include "resource.h"class CMyDlg :public CDialog {DECLARE_MESSAGE_MAP() publi…...

【信息系统项目管理师】法律法规与标准规范——历年考题(2024年-2020年)

手机端浏览☞【信息系统项目管理师】法律法规与标准规范——历年考题&#xff08;2024年-2020年&#xff09; 2024年上半年综合知识【占比分值3′】 42、关于招标投标的描述&#xff0c;不正确的是&#xff08;属于同一集团组织成员的投标人可以按照该组织要求协同投标&#xf…...

【HarmonyOS 5】鸿蒙Web组件和内嵌网页双向通信DEMO示例

【HarmonyOS 5】鸿蒙Web组件和内嵌网页双向通信DEMO示例 一、前言 在 ArkUI 开发中,Web 组件(Web)允许开发者在应用内嵌入网页,实现混合开发场景。 本文将通过完整 DEMO,详解如何通过WebviewController实现 ArkUI 与内嵌网页的双向通信,涵盖 ArkUI 调用网页 JS、网页调…...

var、let、const的区别

1. var 在ES5中&#xff0c;顶层对象的属性和全局变量是等价的&#xff0c;用var声明的变量即是全局变量&#xff0c;也是顶层变量&#xff0c;在浏览器中顶层对象指的是window对象&#xff0c;在node中顶层对象指的是global对象。 console.log(a) // undefined var a 1 cons…...

计算机视觉注意力机制【一】常用注意力机制整理

在做目标检测项目&#xff0c;尤其是基于 YOLOv5 或 YOLOv7 的改进实验时&#xff0c;我发现不同注意力机制对模型性能的提升确实有明显影响&#xff0c;比如提高小目标检测能力、增强特征表达等。但每次找代码都得翻论文、找 GitHub&#xff0c;效率很低。所以我干脆把常见的注…...

交替序列长度的最大值

1、题目描述 给出n个正整数&#xff0c;你可以随意从中挑选一些数字组成 一段序列S&#xff0c;该序列满足以下两个条件&#xff1a; 1.奇偶交替排列&#xff1a;例如&#xff1a;"奇&#xff0c;偶&#xff0c;奇&#xff0c;偶&#xff0c;奇.…" 或者 "偶&a…...

追踪大型语言模型的思想(下)(来自针对Claude的分析)

多步推理 正如我们上面所讨论的&#xff0c;语言模型回答复杂问题的一种方式就是简单地记住答案。例如&#xff0c;如果问“达拉斯所在州的首府是哪里&#xff1f;”&#xff0c;一个“机械”的模型可以直接学会输出“奥斯汀”&#xff0c;而无需知道德克萨斯州&#xff0c;达拉…...

嵌入式通信协议总览篇:万物互联的基石

嵌入式系统的世界,是靠协议“说话”的世界。 在你设计一个智能设备、构建一个工业控制系统、开发一款 IoT 网关时,一个核心问题始终绕不开:**这些设备之间如何“对话”?**答案就是——通信协议。 本篇作为系列第一章,将带你全面理解嵌入式通信协议的全貌,为后续深入学习…...

Android 连接德佟打印机全实例+踩坑

文章目录 1. sdk下载2. 开始开发2.1 打印之前准备工作2.2 打印机是否连接检测2.3 打印框架设计 最近有个需求是要连接 德佟打印机 进行打印相关事宜, 现在就遇到的问题简单阐述一下。 1. sdk下载 我们首先需要在官网下载对应的SDK&#xff0c;地址为&#xff1a;https://www.d…...

TikTok 矩阵运营新手实操保姆级教程 2.0 版本

在当下这个全球化的数字浪潮中&#xff0c;TikTok 这片充满机遇的流量蓝海&#xff0c;正吸引着无数创业者和品牌方争相角逐。而要想在这激烈的竞争中脱颖而出&#xff0c;TikTok 矩阵运营无疑是至关重要的制胜法宝。今天&#xff0c;就给大家送上这份超实用的新手实操教程&…...

WordPress:Locoy.php火车头采集

<?php /* 模块参数列表&#xff1a; post_title 必选 标题 post_content 必选 内容 tag 可选 标签 post_category 可选 分类 post_date 可选 时间 post_excerpt 可选 摘要 post_author 可选 作者 category_description 可选 分类信息 post_cate_meta[name] 可选 自定义分…...

C++ 有哪些标准版本

目录 1.主要分为以下几个版本C98&#xff08;ISO/IEC 14882:1998&#xff09; 第一个国际标准C03&#xff08;ISO/IEC 14882:2003&#xff09;小幅度修订C11&#xff08;ISO/IEC 14882:2011&#xff09;一次重大更新C14&#xff08;ISO/IEC 14882:2014&#xff09;增量改进C17&…...

二、MySQL操作命令汇总

文章目录 二、MySQL操作命令汇总1.数据库操作2.表的增删改查2.1 查表2.2 建表给表添加注释假如表已经存在 2.3 删表2.4 查看表结构2.5 改表 3.简单查询3.1 查询单个字段3.2 查询多个字段3.3 查询所有字段3.4 查询结果去重3.5 查询结果排序3.6 查询结果限制条数3.7 查询分组结果…...

编程日志4.28

队列的链表表示代码 #include<iostream> #include<stdexcept> using namespace std; //队列 类的声明 template<typename T>//1.模板声明&#xff0c;表明Queue类是一个通用的模板类&#xff0c;可以用于存储任何类型的元素T class Queue {//2.Queue类的声…...

Qt 中信号与槽(signal-slot)机制支持 多种连接方式(ConnectionType)

Qt 中信号与槽&#xff08;signal-slot&#xff09;机制支持 多种连接方式&#xff08;ConnectionType&#xff09; Qt 中信号与槽&#xff08;signal-slot&#xff09;机制支持 多种连接方式&#xff08;ConnectionType&#xff09;&#xff0c;用于控制信号发出后如何调用槽…...

Python案例实战《手势识别》

目录 1、效果图2、手势识别关键步骤&#xff08;1&#xff09; 导入必要的库&#xff08;2&#xff09;配置 MediaPipe&#xff08;3&#xff09;启动摄像头&#xff08;4&#xff09;设置手指张开判断的距离阈值&#xff08;5&#xff09;计算手指之间的欧几里得距离&#xff…...

NGINX `ngx_http_charset_module` 字符集声明与编码转换

一、模块定位与功能 ngx_http_charset_module 主要提供两大能力&#xff1a; 响应头声明&#xff1a;在 Content-Type 头部自动添加 ; charsetXXX&#xff0c;告知客户端所用字符集。单向编码转换&#xff1a;在 NGINX 层将一种单字节编码&#xff08;如 koi8-r、windows-125…...

进程与线程详细介绍

目录 一 进程概念 二 进程的组成 2.1 PCB 2.2 数据段 2.3 程序段 三 进程的五大特点 四 进程的创建与销毁 五 线程概念 六 线程特征 七 进程与线程的区别与联系 区别 联系 一 进程概念 进程是程序的一次执行过程&#xff0c;是操作系统进行资源分配和调度的基本单位…...

JAVA中ArrayList的解析

gogogo出发喽&#xff01;让我们来认识一下它吧 什么是ArrayList Java 中的 ArrayList 是 Java 集合框架中的重要类&#xff0c;用于实现动态数组 动态数组&#xff1a;可按需自动扩展或缩小&#xff0c;无需手动管理数组大小。比如不断向 ArrayList 添加元素时&#xff0c;…...

【LLM+Code】Devin PromptTools详细解读

Devin 官网&#xff1a;https://devin.ai/ Prompt 大部分篇幅都是tools的直出的description和parameters的一些信息 其他的包含 Communicatework的一些指导Best PracticesInformation HandlingData SecurityResponse Limitationsplanthink You are Devin, a software engi…...

AI应用开发实战分享

一、前言 30年前的IntelWindows互相绑定&#xff0c;让世界被计算机技术重构了一次&#xff0c;有了程序员这个工种。十几年前iPhone、Android前后脚发布&#xff0c;智能手机和移动App互相绑定&#xff0c;引爆了一个长达十几年的移动互联网大跃进时代。而随着人工智能大模型…...

浅聊find_package命令的搜索模式(Search Modes)

背景 find_package应该算是我们使用最多的cmake命令了。但是它是如何找到上游库的.cmake文件的&#xff1f; 根据官方文档&#xff0c;整理下find_package涉及到的搜索模式。 搜索模式 find_package涉及到的搜索模式有两种&#xff1a;模块模式(Module mode)和配置模式(Conf…...

FPGA图像处理(二)-----彩色图像灰度化

由于fpga实现除法相对复杂&#xff0c;故将除法变为乘法再移位。因此每种方法对图像输入数据均分3步进行&#xff0c;极其有效信号打三拍处理。 timescale 1ns / 1ps // // Description: 彩色图像灰度化 // module image_rgb2gray(input wire clk ,input wir…...

Ultralytics中的YOLODataset和BaseDataset

YOLODataset 和 BaseDataset 是 Ultralytics YOLO 框架中用于加载和处理数据集的两个关键类。 YOLODataset类&#xff08;ultralytics/data/dataset.py&#xff09;继承于 BaseDataset类&#xff08;ultralytics/data/base.py&#xff09; BaseDataset() BaseDataset 是一个…...

Mac 使用 Charles代理生成https服务

在Mac电脑上使用Charles软件通过代理生成HTTPS服务&#xff0c;让手机访问电脑的开发地址&#xff0c;可按以下步骤操作&#xff1a; 一、Charles软件设置 安装与启动Charles&#xff1a;从Charles官网下载并安装Charles软件&#xff0c;之后启动它。开启代理服务 点击菜单栏…...

【PostgreSQL】数据库主从库备份与高可用部署

文章目录 一、架构设计原理二、部署清单示例2.1 StatefulSet配置片段2.2 Service配置三、配置详解3.1 主节点postgresql.conf3.2 从节点配置四、初始化流程4.1 创建复制用户4.2 配置pg_hba.conf五、故障转移示例5.1 自动切换脚本5.2 手动提升从节点六、监控与维护6.1 关键监控指…...

ERP进销存系统源码,SaaS模式多租户ERP管理系统,SpringBoot、Vue、UniAPP技术框架

SaaS ERP管理系统源码&#xff0c;覆盖了整个生产企业所有部门的管理&#xff1a;采购、销售、仓库、生产、财务、质量、OA&#xff1a; ERP源码技术架构&#xff1a;SpringBootVueElementUIUniAPP ERP系统功能清单&#xff1a; 流程处理中心&#xff1a;待审批任务、已审批任…...

Decode rpc invocation failed: null -> DecodeableRpcInvocation

DecodeableRpcInvocation 异常情况解决方法 错误警告官方FAQ 异常情况 记录一下Dubbo调用异常 java.util.concurrent.ExecutionException: org.apache.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer. start time: 2025-05-07 22:09:5…...

VAE和Stable Diffusion的关系

文章目录 ✅ 简单回顾&#xff1a;什么是 VAE&#xff1f;&#x1f504; Stable Diffusion 和 VAE 的关系&#xff1a;&#x1f3af; 编码器&#xff1a;&#x1f4a5; 解码器&#xff1a; &#x1f914; 那 Stable Diffusion 本身是 VAE 吗&#xff1f;&#x1f9e0; 简要对比…...