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

图像处理中的 Gaussina Blur 和 SIFT 算法

Gaussina Blur 高斯模糊

高斯模糊的数学定义

高斯模糊是通过 高斯核(Gaussian Kernel) 对图像进行卷积操作实现的. 二维高斯函数定义为
G ( x , y , σ ) = 1 2 π σ 2 e − x 2 + y 2 2 σ 2 G(x, y, \sigma) = \frac{1}{2\pi \sigma^2} e^{-\frac{x^2 + y^2}{2\sigma^2}} G(x,y,σ)=2πσ21e2σ2x2+y2
其中:

  • ( x , y ) (x, y) (x,y) 是像素点的坐标
  • σ \sigma σ 是高斯核的标准差, 控制模糊程度 σ \sigma σ 越大, 图像越模糊

高斯模糊计算的 Python 实现

以下是使用 OpenCV 计算不同尺度高斯模糊的代码

import cv2
import numpy as np
import matplotlib.pyplot as plt# 读取图像
img = cv2.imread('00001.jpg', cv2.IMREAD_COLOR_RGB)# 定义高斯核的尺度(σ值)
sigma_values = [1.0, 1.6, 2.0, 2.5, 3.0]  # 示例σ值# 对每个σ值进行高斯模糊
blurred_images = []
for sigma in sigma_values:# 高斯核大小(通常根据σ自动计算,如 ksize=(0,0))blurred = cv2.GaussianBlur(img, (0, 0), sigmaX=sigma, sigmaY=sigma)blurred_images.append(blurred)# 显示结果
plt.figure(figsize=(15, 8))
# 原图
plt.subplot(2, 3, 1)
plt.imshow(img)
plt.title('original')
plt.axis('off')
# 模糊处理过的图
for i, (sigma, blurred) in enumerate(zip(sigma_values, blurred_images)):plt.subplot(2, 3, i+2)plt.imshow(blurred, cmap='gray')plt.title(f'σ={sigma}')plt.axis('off')
plt.tight_layout()
plt.show()
  • cv2.GaussianBlur(img, ksize, sigmaX)
    • ksize=(0,0) 时, OpenCV 会根据 σ \sigma σ 自动计算核大小, 通常为 6 σ + 1 6\sigma + 1 6σ+1
    • sigmaXsigmaY 是高斯核在 X 和 Y 方向的标准差, 通常设为相同值

高斯核矩阵

在实际计算中, 高斯核需要离散化为一个二维矩阵. 例如, 当 σ = 1.0 \sigma = 1.0 σ=1.0 时, 一个 3×3 的高斯核可能如下

K = 1 16 [ 1 2 1 2 4 2 1 2 1 ] K = \frac{1}{16} \begin{bmatrix} 1 & 2 & 1 \\ 2 & 4 & 2 \\ 1 & 2 & 1 \\ \end{bmatrix} K=161 121242121

手动计算高斯核的示例

import cv2
import numpy as np# 生成二维高斯核
def gaussian_kernel(size, sigma):kernel = np.zeros((size, size))# // 是整数除法运算符, 会将结果向下取整到最接近的整数center = size // 2for x in range(size):for y in range(size):dx, dy = x - center, y - centerkernel[x, y] = np.exp(-(dx**2 + dy**2) / (2 * sigma**2))kernel /= kernel.sum()  # 归一化return kernel# 生成 σ=1.5 的 5x5 高斯核
kernel = gaussian_kernel(5, 1.5)
print(kernel)

矩阵中各元素的数值构成了一个三维高斯曲面, 中心点最高, 呈钟形向四周降低

SIFT(Scale-Invariant Feature Transform)算法

SIFT(Scale-Invariant Feature Transform)算法是一种用于图像处理中的局部特征提取方法, 具有尺度、旋转和光照不变性, 因为其结果稳定性和较高的精度在图像匹配中广泛应用. SIFT的缺点是计算复杂度较高, 在一些需要实时处理的场景被快速算法如SURF, ORB等替代. 在 COLMAP 中, 提取特征量和匹配基于的就是 SIFT 算法.

1. 尺度空间极值检测(Scale-Space Extrema Detection)

目的: 在多尺度空间中寻找关键点(潜在的特征点)

  • 构建高斯金字塔
    • 对图像进行不同尺度的高斯模糊(通过高斯卷积核 $ G(x,y,\sigma) $), 生成多组(Octave)图像. 每组包含多层(Interval), 尺度按 $ k\sigma $ 递增(如 $ \sigma, k\sigma, k^2\sigma $).
      • 不同尺度的高斯模糊是通过对图像应用不同标准差 σ \sigma σ 的高斯核进行卷积计算得到的
    • 下一组的图像由上一组降采样(如尺寸减半)得到.
  • 构建高斯差分金字塔(DoG)
    • 对同一组内相邻尺度的高斯图像相减, 得到 $ D(x,y,\sigma) = L(x,y,k\sigma) - L(x,y,\sigma) $
    • DoG用于近似拉普拉斯算子(LoG), 效率更高.
  • 检测极值点
    • 每个像素与同一层相邻的8个像素及上下相邻层的18个像素(共26个)比较, 判断是否为局部极大/极小值.

2. 关键点定位(Keypoint Localization)

目的: 精确定位关键点, 去除低对比度或边缘响应点

  • 泰勒展开精确定位
    • 通过泰勒展开拟合DoG函数, 找到极值点的亚像素级位置(偏移量 $ \hat{x} $)
    • 若 $ |D(\hat{x})| $ 小于阈值(如0.03), 则视为低对比度点, 剔除
  • 边缘响应剔除
    • 利用Hessian矩阵计算曲率, 剔除边缘响应强的点(主曲率比值大的点)
    • 若 $ \frac{\text{Tr}(H)^2}{\text{Det}(H)} > \frac{(r+1)^2}{r} $(通常 $ r=10 $), 则剔除

3. 方向分配(Orientation Assignment)

目的: 将关键点方向归一化处理, 以实现旋转不变性

  • 计算梯度幅值和方向
    • 在关键点所在高斯尺度图像上, 计算邻域窗口内像素的梯度:
      m ( x , y ) = ( L ( x + 1 , y ) − L ( x − 1 , y ) ) 2 + ( L ( x , y + 1 ) − L ( x , y − 1 ) ) 2 m(x,y) = \sqrt{(L(x+1,y)-L(x-1,y))^2 + (L(x,y+1)-L(x,y-1))^2} m(x,y)=(L(x+1,y)L(x1,y))2+(L(x,y+1)L(x,y1))2
      θ ( x , y ) = tan ⁡ − 1 ( L ( x , y + 1 ) − L ( x , y − 1 ) L ( x + 1 , y ) − L ( x − 1 , y ) ) \theta(x,y) = \tan^{-1}\left( \frac{L(x,y+1)-L(x,y-1)}{L(x+1,y)-L(x-1,y)} \right) θ(x,y)=tan1(L(x+1,y)L(x1,y)L(x,y+1)L(x,y1))
  • 生成方向直方图
    • 将360°分为36柱(每柱10°), 加权统计梯度幅值(权重为高斯窗口和梯度幅值).
    • 取主峰(最高峰值)和80%以上主峰的次峰作为关键点方向.

4. 关键点描述符(Descriptor Generation)

目的: 在方向归一化处理后, 通过划分子块生成关键点的特征向量

  • 旋转坐标轴: 将邻域窗口旋转至关键点主方向.
  • 划分子区域: 将16×16的窗口分为4×4的子块(共16块).
  • 计算子块梯度直方图:
    • 每个子块内计算8方向的梯度直方图(共8维).
    • 16个子块 × 8方向 = 128维特征向量.
  • 归一化处理:
    • 对特征向量归一化, 减少光照影响, 并截断大于0.2的值以增强鲁棒性.

5. 关键点匹配

  • 通过欧氏距离(如最近邻算法)比较两幅图像的SIFT描述符
  • 使用最近邻距离比(NNDR, 如 $ \frac{d_1}{d_2} < 0.8 $)筛选匹配点, 提升匹配精度.

在Python代码中通过OpenCV使用SIFT算法

提取关键点

import cv2
import matplotlib.pyplot as plt# 读取图像(转为灰度图)
img = cv2.imread('00001.jpg', cv2.IMREAD_GRAYSCALE)# 初始化 SIFT 检测器
sift = cv2.SIFT_create()# 检测关键点并计算描述符
keypoints, descriptors = sift.detectAndCompute(img, None)# 绘制关键点
img_with_keypoints = cv2.drawKeypoints(img, keypoints, None, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS
)# 显示结果
plt.figure(figsize=(10, 6))
plt.imshow(img_with_keypoints, cmap='gray')
plt.title('SIFT Keypoints')
plt.axis('off')
plt.show()

双图关键点匹配

import cv2
import matplotlib.pyplot as plt# 读取两张图像
img1 = cv2.imread('00001.jpg', cv2.IMREAD_GRAYSCALE)
img2 = cv2.imread('00006.jpg', cv2.IMREAD_GRAYSCALE)# 初始化 SIFT
sift = cv2.SIFT_create()# 计算关键点和描述符
kp1, desc1 = sift.detectAndCompute(img1, None)
kp2, desc2 = sift.detectAndCompute(img2, None)# 使用 BFMatcher(Brute-Force 匹配器)
bf = cv2.BFMatcher(cv2.NORM_L2, crossCheck=True)
matches = bf.match(desc1, desc2)# 按距离排序,取最优匹配
matches = sorted(matches, key=lambda x: x.distance)# 绘制前 50 个匹配点
matched_img = cv2.drawMatches(img1, kp1, img2, kp2, matches[:10], None, flags=cv2.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS
)# 显示匹配结果
plt.figure(figsize=(15, 8))
plt.imshow(matched_img, cmap='gray')
plt.title('SIFT Feature Matching')
plt.axis('off')
plt.show()

相关文章:

图像处理中的 Gaussina Blur 和 SIFT 算法

Gaussina Blur 高斯模糊 高斯模糊的数学定义 高斯模糊是通过 高斯核(Gaussian Kernel) 对图像进行卷积操作实现的. 二维高斯函数定义为 G ( x , y , σ ) 1 2 π σ 2 e − x 2 y 2 2 σ 2 G(x, y, \sigma) \frac{1}{2\pi \sigma^2} e^{-\frac{x^2 y^2}{2\sigma^2}} G(x…...

AWS区块链游戏场景技术解决方案:全球节点与去中心化架构实践

一、区块链游戏的技术挑战与架构需求 区块链游戏作为Web3领域的重要应用场景&#xff0c;其技术架构需要满足以下核心需求&#xff1a; 分布式账本的高效同步与共识验证 智能合约的安全执行环境 全球玩家的低延迟交互体验 动态扩展的节点网络支持 海量NFT资产的可靠存储 …...

AWS VPC深度解析:构建安全可靠的云网络基础设施

1. 引言 在云计算时代,网络基础设施的重要性不言而喻。Amazon Web Services (AWS) 的Virtual Private Cloud (VPC)为用户提供了一个强大而灵活的网络环境,使他们能够在AWS云中构建安全、可扩展的应用程序。本文将全面剖析AWS VPC的核心特性,帮助读者深入理解如何利用VPC构建高…...

青少年编程与数学 02-016 Python数据结构与算法 08课题、图

青少年编程与数学 02-016 Python数据结构与算法 08课题、图 一、图1. 图的基本概念1.1 定义1.2 顶点和边1.3 图的分类1.4 特殊术语 2. 图的表示方法1. 邻接矩阵&#xff08;Adjacency Matrix&#xff09;2. 邻接表&#xff08;Adjacency List&#xff09;3. 边列表&#xff08;…...

微信小程序:动态表格实现,表头单元格数据完全从data中获取,宽度自定义,自定义文本框,行勾选,样式效果,横向滚动表格(解决背景色不足的问题)等

一、样式效果 二、代码 1、wxml <view class"line flex flex-center"><view class"none" wx:if"{{info.length 0}}">暂无料号</view><view wx:else class"table-container"><!-- 动态生成表头 -->&…...

MySQL学习笔记集--游标

游标 在MySQL中&#xff0c;游标&#xff08;Cursor&#xff09;是一种数据库对象&#xff0c;它允许您逐行处理查询结果集。游标通常与存储过程一起使用&#xff0c;因为它们需要在存储过程或函数中声明和操作。游标的使用涉及几个步骤&#xff1a;声明游标、打开游标、从游标…...

Microsoft Defender Antivirus Service服务占用CPU过高

下载火绒安全&#xff0c;用它替代 Microsoft Defender&#xff0c;并关闭 Microsoft Defender 两步禁用Windows Defender Antivirus Service_microsoft defender antivirus service-CSDN博客 Windows10/11家庭版 关闭方法 按 ‘Win键R’&#xff0c;输入 “regedit”&#…...

Ansible(7)——管理机密与事实

目录 一、管理机密&#xff1a; 1、Ansible Vault &#xff1a; 2、ansible-vault 命令行工具&#xff1a; &#xff08;1&#xff09;创建加密文件&#xff1a; &#xff08;2&#xff09;查看加密文件&#xff1a; &#xff08;3&#xff09;编辑现有加密文件&#xf…...

consul服务注册与发现(go)-学习笔记

参考博客 1、服务实例接口与默认实现 type ServiceInstance interface {// 获取服务实例的唯一IDGetInstanceId() string// 获取服务IDGetServiceId() string// 获取服务实例的主机名或IP地址GetHost() string// 获取服务实例的端口号GetPort() int// 判断服务实例是否使用HT…...

golang-defer延迟机制

defer延迟机制 defer是什么 defer是go中一种延迟调用机制。 执行时机 defer后面的函数只有在当前函数执行完毕后才能执行。 执行顺序 将延迟的语句按defer的逆序进行执行&#xff0c;也就是说先被defer的语句最后被执行&#xff0c;最后被defer的语句&#xff0c;最先被执…...

字符串哈希算法详解:原理、实现与应用

字符串哈希是一种高效处理字符串匹配和比较的技术&#xff0c;它通过将字符串映射为一个唯一的数值&#xff08;哈希值&#xff09;&#xff0c;从而在O(1)时间内完成子串的比较。本文将结合代码实现&#xff0c;详细讲解前缀哈希法的工作原理&#xff0c;并通过流程图逐步解析…...

python-Leetcode 65.搜索旋转排序数组

题目&#xff1a; 整数数组nums按升序排列&#xff0c;数组中的值互不相同 在传递给函数之前&#xff0c;nums在预先未知的某个小标K上进行了旋转&#xff0c;使数组变为[nums[k], nums[k1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]]&#xff0c;小标从0开始计数。…...

蓝桥杯 C/C++ 组历届真题合集速刷(二)

一、0ASC - 蓝桥云课 &#xff08;单位换算&#xff09;算法代码&#xff1a; #include <iostream> using namespace std; int main() {printf("%d",L);return 0; } 二、0时间显示 - 蓝桥云课 &#xff08;单位换算&#xff09;算法代码&#xff1a; #inclu…...

react的redux总结

目录 一、Antd 1.1、基本使用 1.2、自定义主题 二、Redux 2.1、工作流程 2.2、理解react-redux 2.3、优化 2.3.1、简写mapDispatch 2.3.2、Provider组件 2.4、数据共享 2.4.1、编写Person组件 2.4.2、Person组件的reducer 2.4.3、完成数据共享 2.5、求和案例 2.…...

MySQL视图

一、视图的本质与分类 1. 定义 虚拟表&#xff1a;视图不存储数据&#xff0c;本质是保存的查询语句&#xff08;SELECT&#xff09;&#xff0c;每次访问视图时动态执行查询并返回结果。 逻辑抽象&#xff1a;基于一个或多个基表&#xff08;或视图&#xff09;创建&#xf…...

程序化广告行业(69/89):电商素材制作与展示策略解析

程序化广告行业&#xff08;69/89&#xff09;&#xff1a;电商素材制作与展示策略解析 在如今数字化营销的浪潮中&#xff0c;程序化广告成为众多企业精准触达目标客户的有力武器。作为一名在广告技术领域摸爬滚打多年的从业者&#xff0c;深知学习是不断进步的阶梯&#xff…...

【PCB工艺】发光二极管的原理

你真的知道发光二极管为什么会发光吗&#xff1f; 而为什么另一部分二极管不会发光呢&#xff1f; 这篇文章解释元器件发光二极管&#xff08;LED&#xff09;的底层原理。 发光二极管&#xff08;LED, Light Emitting Diode&#xff09; 是一种能够将电能转换为光能的半导体…...

探秘 DeepSeek:开源生态如何推动 AI 技术普惠?

探秘 DeepSeek:开源生态如何推动 AI 技术普惠? 引言 在人工智能(AI)领域,技术的快速发展和广泛应用正在深刻改变我们的生活。然而,AI 的发展往往伴随着资源和技术的集中化问题,大型科技公司凭借其雄厚的资金和人才优势占据了主导地位,而中小企业、研究机构和个人开发…...

远程主机可能不符合glibc和libstdc++ VS Code服务器的先决条件

这是因为我最近更新了vscode&#xff0c; 服务器中有个GLIBC库&#xff0c;VSCode>1.86.0版本对 低于v2.28.0版本的GLIBC不再满足需求。 解决办法 回退到之前能够连接服务器的版本。我之前用的是January 2025 (version 1.97) vscode旧版本下载地址...

JVM性能调优:参数配置×内存诊断×GC调优实战

&#x1f680;前言 “你的Java应用是否还在经历莫名卡顿&#xff1f;半夜被OOM报警惊醒&#xff1f;GC日志像天书看不懂&#xff1f; 本文将用20个真实案例50个关键参数&#xff0c;带你掌握&#xff1a; 参数调优&#xff1a;如何用-XX:UseG1GC让GC暂停从秒级降到毫秒级&…...

pg_waldump 使用方法和输出验证

目录 pg_waldump 使用方法和输出验证一、pg_waldump 基础用法二、验证输出文件正确性三、关键参数 -p 的作用四、验证示例五、注意事项 pg_waldump 使用方法和输出验证 一、pg_waldump 基础用法 命令格式 pg_waldump [选项] [WAL文件路径]-p, --pgdataDIR&#xff1a;指定 Pos…...

Android 定制飞行模式和通话中设置菜单置灰

业务背景 定制需求实现 目标&#xff1a;通话中禁用移动网络设置中的网络模式和APN入口。 Google原生行为分析 在原生Android中&#xff1a; 飞行模式&#xff1a; 无法在通话中开启&#xff1a;系统会自动阻止&#xff0c;因飞行模式会断开通话所需的射频。APN/网络模式修改…...

C# System.Text.Json 中 ReferenceHandling 使用详解

总目录 一、什么是 ReferenceHandling&#xff1f; 1. 概述 ReferenceHandling 是 System.Text.Json 中用于处理对象引用&#xff08;循环引用或重复引用&#xff09;的选项。它允许开发者在序列化和反序列化时控制如何处理对象之间的引用关系。 默认情况下&#xff0c;Syst…...

【开发经验】调试OpenBMC Redfish EventService功能

EventService功能是Redfish规范中定义的一种事件日志的发送方式。用户可以设置订阅者信息(通常是一个web服务器)&#xff0c;当产生事件日志时&#xff0c;OpenBMC可以根据用户设置的订阅者信息与对日志的筛选设置&#xff0c;将事件日志发送到订阅者。 相比于传统的SNMPTrap日…...

【AI工具】FastGPT:开启高效智能问答新征程

前言 在人工智能飞速发展的当下&#xff0c;各类 AI 工具如雨后春笋般涌现。FastGPT 作为一款基于大语言模型&#xff08;LLM&#xff09;的知识图谱问答系统&#xff0c;凭借其强大的数据处理和模型调校能力&#xff0c;为用户带来了便捷的使用体验。今天&#xff0c;就让我们…...

4.8学习总结 贪心算法+Stream流

贪心算法&#xff1a; 找到局部最优->从而推导全局最优。 Java练习&#xff1a; 获取随机验证码&#xff1a; import java.util.*; import java.util.function.BiConsumer; public class test {public static void main(String[] args) {System.out.println(createCode(…...

入选ICLR‘25 Spotlight!深度强化学习(DRL)迎来新突破!

近年来&#xff0c;深度强化学习相关的成果在顶会顶刊上接受度普遍较高&#xff0c;经常上榜ICLR、Nature、Science等。比如ICLR 2025上的一篇Spotlight&#xff0c;由清华团队提出&#xff0c;介绍了一种SmODE网路&#xff0c;让深度强化学习的控制更加丝滑&#xff01; 另外…...

【学习笔记】HTTP和HTTPS的核心区别及工作原理

一、基础概念 HTTP&#xff08;超文本传输协议&#xff09;&#xff1a;明文传输数据&#xff0c;默认端口80&#xff0c;容易被窃听或篡改。 HTTPS&#xff08;HTTP SSL/TLS&#xff09;&#xff1a;通过加密传输数据&#xff0c;默认端口443&#xff0c;保障安全性。 二、…...

gbase8s之数据字典导出脚本(完美)

有时我们需要将表结构转换成数据库设计文档&#xff08;WORD或者其他格式&#xff09;&#xff0c;这时需要使用脚本将表结构导出&#xff0c;转换成可用格式。 该脚本适用于GBase 8s小版本号在3.0之后的版本&#xff08;含有syscolumnsext、syscomments以及syscolcomments表&a…...

java整合socket通信全流程

前言 大家好,由于工作上业务的需要,在java项目中引入了socket通信,特此记录一下,用以备份,本文章中的socket通信实现了,服务端与客户端的双向通讯,以及二者之间的心跳通信,服务端重启之后,客户端的自动重连功能。 原理 Socket通信是计算机网络中常用的一种通信机制…...

【scikit-learn基础】--『预处理』之 正则化

数据的预处理是数据分析&#xff0c;或者机器学习训练前的重要步骤。 通过数据预处理&#xff0c;可以 提高数据质量&#xff0c;处理数据的缺失值、异常值和重复值等问题&#xff0c;增加数据的准确性和可靠性整合不同数据&#xff0c;数据的来源和结构可能多种多样&#xff…...

WHAT - React 使用 Hook 分离计算逻辑与渲染逻辑

目录 原始代码如何优化1. 函数式简洁风格2. hook 封装&#xff08;重点&#xff09;3. 性能优化 原始代码 const GoodList ({ goods }) > {if (goods.length 0) {return <>暂无数据</>;}let totalCount 0;let totalPrice 0;goods.forEach((good) > {tot…...

AI比人脑更强,因为被植入思维模型【49】冰山理论思维模型

giszz的理解&#xff1a;冰山一角&#xff0c;冰山理论并不深奥&#xff0c;就是这个意思。对我启发比较大的&#xff0c;就是人的一个行为&#xff0c;背后可能藏着行为、应对方式、感受、观点、期待、渴望、自我七个层次。更有一个扩展&#xff0c;就是每个人的自我&#xff…...

【Linux】Git的简单使用

&#x1f4dd;前言&#xff1a; 这篇文章我们来讲讲版本控制器Git&#xff0c;主要掌握一些简单的本地仓库与远端仓库之间的文件传输操作。 &#x1f3ac;个人简介&#xff1a;努力学习ing &#x1f4cb;个人专栏&#xff1a;Linux &#x1f380;CSDN主页 愚润求学 &#x1f30…...

【WebRTC】开源项目Webrtc-streamer介绍

WebRTC-Streamer 这是一个用于通过简单的信令机制&#xff08;参见 api&#xff09;流式传输 WebRTC 媒体源的实验项目&#xff0c;支持以下媒体源&#xff1a; 捕获设备 屏幕捕获 mkv 文件 RMTP/RTSP 源 同时该项目也兼容 WHEP 接口。 注意 * 在线演示已停止&#xff0c…...

Bigemap pro制作行政区域图

Bigemap pro制作行政区域图 第一步&#xff1a;打开bigemap pro软件&#xff0c;右上角加载更多矢量到地图上&#xff0c;加载出来需要的矢量数据&#xff0c;以北京市为例&#xff0c;如图所示&#xff1a; 第二步&#xff1a;在我的矢量图层&#xff0c;点击右键&#xff0c…...

Kotlin 和 spring-cloud-function 兼容问题

错误&#xff1a; [ERROR] Failed to execute goal org.jetbrains.kotlin:kotlin-maven-plugin:1.9.25:compile (compile) on project springdoc-openapi-starter-common: Compilation failure [ERROR] /opt/repository/org/springframework/cloud/spring-cloud-function-conte…...

OpenVINO是什么

OpenVINO&#xff08;Open Visual Inference and Neural Network Optimization&#xff09;是由英特尔&#xff08;Intel&#xff09;开发的一个开源工具套件&#xff0c;用于优化和加速深度学习模型的推理过程&#xff0c;特别是在计算机视觉、自然语言处理和生成式 AI 等领域…...

【学Rust写CAD】38 over_in 函数(alpha256补充方法)

源码 #[inline] // 内联优化标记 pub fn over_in(self, src: Argb, dst: Argb) -> Argb {// 计算目标alpha因子 self * src的alpha通道let dst_alpha self * src.alpha_t();// 预乘源和目标的颜色分量let src_rb src.rb() * self.0; // 源的红蓝分量乘以alpha因子let …...

球类(继承和多态)

父类Ball&#xff0c;设置为抽象类&#xff0c;调用get和set方法创建对象&#xff0c;将子类重写的功能函数抽象化。 // 抽象球类 abstract class Ball {private String name;private double radius; // 半径private double weight; // 重量private double price; // 价格// 构…...

苍穹外卖(1)-部分环境配置(git、数据库)

首先配置git 创建好本地仓库之后 把项目弄到远程仓库里去 先进行提交 &#xff0c;后进行推送 &#xff0c;然后gitee创建一个仓库 把这个url复制好 推送后会出来一个 点击推送&#xff0c;会让你输入gitee账号密码&#xff0c;输入自己的账号密码&#xff0c;就可以连接远程仓…...

避免误用strncmp与memcmp,strcpy与memcpy

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 注&#xff1a;使用说明部分参考豆包ai 1. 字符串与二进制流认知 许多时候&#xff0c;我们作为软件研发人员&#xff0c;会觉得 一段内存就是一串字符串&#xff1b;字符串就是一段内存&#xff1b; 概念上&#xff…...

华为欧拉系统安装docker

华为欧拉系统安装docker cat /etc/openEuler-release sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo vi /etc/yum.repos.d/docker-ce.repo dnf makecache dnf install https://download.docker.com/linux/centos…...

windows11怎么把notepad++添加到鼠标右键菜单?

在Windows 11中将Notepad添加到鼠标右键菜单&#xff0c;可通过以下两种方法实现&#xff1a; ​​方法一&#xff1a;手动修改注册表&#xff08;推荐&#xff09;​​ ​​打开注册表编辑器​​ 按下 Win R&#xff0c;输入 regedit 并回车 1 2 3 。 ​​定位注册表路径​​…...

HTML5笔记: 什么是HTML

HTML的全称为超文本标记语言&#xff0c;是一种标记语言。它包括一系列标签&#xff0c;通过这些标签可以将网络上的文档格式统一&#xff0c;使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本&#xff0c;HTML命令可以说明文字&#xff0c;图形…...

【WRF理论第十五期】WPS中输入geogrid二进制格式

WPS中输入geogrid二进制格式 基本概念&#xff1a;Geogrid二进制格式支持的数据类型 geotiff→tiff的规则说明类型1&#xff1a;主导类别字段&#xff08;Dominant Category Field&#xff09;类型2&#xff1a;连续字段&#xff08;Continuous Field&#xff09;类型3&#xf…...

《UNIX网络编程卷1:套接字联网API》第8章:基本UDP套接字编程深度解析

《UNIX网络编程卷1&#xff1a;套接字联网API》第8章&#xff1a;基本UDP套接字编程深度解析&#xff08;8000字图文实战&#xff09; 一、UDP协议核心特性与编程模型 1.1 UDP协议设计哲学 UDP&#xff08;User Datagram Protocol&#xff09; 是面向无连接的传输层协议&…...

【WPF】IOC控制反转的应用:弹窗但不互相调用ViewModel

全称&#xff1a;Inversion of Control&#xff0c;控制反转 场景&#xff1a;A页面需要调用B/C页面等&#xff0c;防止直接在VM中新建别的页面实例&#xff0c;使用IOC设计架构&#xff1b; 创建Service&#xff0c;在Service中实现页面的实例创建和定义页面输入输出参数。 在…...

解决制作CI流水线时的no host异常报错

方法介绍 使用 HostAliases 向 Pod /etc/hosts 文件添加条目 当dns配置以及其他选项不合理时&#xff0c;可以通过向pod的/etc/hosts添加条目&#xff0c;可以在pod级别覆盖对主机名的解析&#xff0c;可以通过pod spec的pod aliases来自定义添加条目。 默认的hosts文件内容 …...

(AI+医疗)2025最应该学习是--医学AI大模型LLM应用与开发

(AI医疗)2025最应该学习是–医学AI大模型LLM应用与开发!! AI技术正在为医学领域带来的现实变革。而实现这一切的核心&#xff0c;正是自然语言大模型&#xff08;LLM&#xff09;的应用与开发。 为什么医学AI是未来的风口&#xff1f; AI正在重塑医疗行业。从智能问诊到辅助…...