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

工业视觉高精度测量利器——Halcon卡尺工具深度解析

Halcon中的卡尺工具(Caliper Tool)是工业视觉中用于高精度边缘检测和几何测量的重要功能,尤其在尺寸测量、定位和对象分析中广泛应用。以下从原理、实现到优化的深度解析:

1. 卡尺工具实现原理(步骤分解)​

​步骤​​原理描述​​关键技术​
​1. ROI定义​通过几何形状(矩形/圆弧)限制检测区域,排除背景干扰。几何变换、坐标映射
​2. 边缘扫描​沿ROI垂直方向逐行/列扫描像素,计算灰度梯度(一阶导数)。高斯滤波、梯度算子(Sobel/Prewitt)
​3. 边缘点提取​根据梯度幅值和极性(Transition)筛选候选边缘点。阈值分割、极性分类(亮到暗/暗到亮)
​4. 亚像素优化​对候选点附近的灰度分布进行插值或曲线拟合,提升边缘定位精度至亚像素级。二次多项式拟合、双线性插值
​5. 边缘对匹配​根据预设规则(间距、极性顺序)匹配边缘对,计算几何参数(距离、角度等)。最近邻搜索、几何约束优化

​2. 关键函数参数详解(表格对比)​

​函数/参数​​作用​​典型值​​调优建议​
gen_measure_rectangle2创建矩形ROI测量对象-ROI方向应与边缘垂直;宽度覆盖可能边缘波动
AngleROI旋转角度rad(0~180)对齐目标边缘的法线方向
Sigma高斯滤波系数(measure_pairs)1.0~2.0噪声大时增大,但会降低边缘锐度
Threshold边缘梯度幅值阈值20~50根据图像对比度调整,过低引入噪声,过高漏检
Transition边缘极性(亮到暗/暗到亮)'positive'/'negative'/'all'明确目标边缘极性可减少误匹配

​3. 优化策略对比(表格总结)​

​问题场景​​优化方法​​实现方式​
​边缘漏检​扩大ROI宽度或降低阈值调整Length1Threshold
​边缘定位抖动​增加Sigma或使用中值滤波预处理Sigma=2.0median_image预处理
​计算速度慢​缩小ROI范围或降低图像分辨率减少ROI的Length1Length2,或reduce_domain
​复杂背景干扰​多重ROI叠加 + 边缘对筛选部署多个ROI,通过程序逻辑筛选有效边缘对
​光照不均​图像预处理(直方图均衡化)equ_histo_image或动态阈值

​4. 实现原理流程图​

 

plaintext

图像输入 → ROI定义 → 边缘扫描 → 梯度计算 → 边缘点提取 → 亚像素优化 → 边缘对匹配 → 输出几何参数

5. Halcon关键函数与流程​

​5.1 创建测量对象​

halcon

* 定义矩形ROI:中心(Row, Column),角度Angle,半宽/高Length1, Length2 gen_measure_rectangle2(Row, Column, Angle, Length1, Length2, Width, Height, 'bilinear', MeasureHandle)

  • ​参数说明​​:bilinear插值提升精度,适用于旋转或倾斜的ROI。
​5.2 执行边缘检测​

halcon

measure_pairs(Image, MeasureHandle, Sigma, Threshold, Transition, Select, RowEdges, ColumnEdges, Amplitude, Distance)

  • ​关键参数​​:
    • Sigma:高斯滤波系数(通常1.0),抑制噪声。
    • Transition:边缘极性('positive'/'negative'/'all')。
    • Threshold:边缘幅值阈值,过滤弱边缘。
​5.3 结果处理​
  • 获取边缘坐标(RowEdges, ColumnEdges)及间距Distance,用于后续几何计算(如拟合直线、圆等)。

​6. 代码示例与注释​

 

halcon

* 读取图像并预处理(减少光照影响) read_image(Image, 'metal_part.jpg') equ_histo_image(Image, ImageEnhanced) * 直方图均衡化 * 创建垂直ROI(假设检测水平边缘) gen_measure_rectangle2(300, 500, rad(90), 50, 200, 1024, 1024, 'bilinear', MeasureHandle) * 执行边缘检测(设置高阈值和滤波) measure_pairs(ImageEnhanced, MeasureHandle, 1.5, 40, 'all', 'all', Rows, Cols, Amp, Dist) * 输出结果(边缘间距统计) if (|Dist| > 0) min_max_distance(Dist, MinDist, MaxDist, AvgDist) * 计算统计值 disp_message('平均间距:' + AvgDist$'.2f', 'window', 12, 12, 'black', 'true') else disp_message('未检测到边缘对!', 'window', 12, 12, 'red', 'true') endif * 释放资源 close_measure(MeasureHandle)

7. 实战案例:测量两个边缘间距​

halcon

* 读取图像并预处理 read_image(Image, 'part.png') * 定义ROI(假设水平边缘,ROI垂直方向) gen_measure_rectangle2(300, 500, rad(90), 50, 200, 1024, 1024, 'bilinear', MeasureHandle) * 执行边缘检测(找'positive'到'negative'的边缘对) measure_pairs(Image, MeasureHandle, 1.0, 30, 'all', 'all', Rows, Cols, Amp, Dist) * 计算平均间距 mean_distance(Dist, AvgDistance) * 清理测量对象 close_measure(MeasureHandle)

 


​8. 亚像素精度误差来源(表格分析)​

​误差类型​​原因​​解决方案​
​灰度不均匀​光照或材质反光导致梯度计算偏差均匀照明或使用偏振片
​运动模糊​物体移动导致边缘模糊缩短曝光时间或使用高速相机
​插值误差​亚像素拟合模型的局限性使用更高阶模型(如三次样条)
​噪声干扰​传感器噪声或环境干扰增大Sigma值或预处理滤波

​9. 性能对比(不同参数下的效果)​

​参数组合​检测速度(ms)精度(μm)适用场景
Sigma=1.0, Threshold=2015±2.5高对比度、静态场景
Sigma=2.0, Threshold=4020±1.8低光照、有噪声环境
ROI缩小50% + 降分辨率8±5.0实时检测、对精度要求低

​总结​

通过表格与原理分步解析,Halcon卡尺工具的核心逻辑可归纳为:​​ROI约束 → 梯度扫描 → 亚像素优化 → 几何计算​​。实际应用中需根据场景动态调整参数(如Sigma、Threshold),并结合预处理(滤波、增强)和后处理(统计筛选)提升鲁棒性。对于复杂任务,建议通过多ROI协同检测或与模板匹配结合,实现高精度工业测量。

相关文章:

工业视觉高精度测量利器——Halcon卡尺工具深度解析

Halcon中的卡尺工具(Caliper Tool)是工业视觉中用于高精度边缘检测和几何测量的重要功能,尤其在尺寸测量、定位和对象分析中广泛应用。以下从原理、实现到优化的深度解析: 1. 卡尺工具实现原理(步骤分解)​…...

2025毕业论文与答辩资料精选汇总

毕业季来临,对于即将毕业的大学生来说,毕业论文和答辩无疑是毕业季的“重头戏”。尤其是对于IT行业的学生来说,毕业论文不仅需要扎实的专业知识,还需要良好的表达能力和清晰的逻辑思维。今天,我为大家整理了一份涵盖IT…...

「数智化聚合分销生态系统」定制开发:重构全渠道增长引擎

在数字经济深度重构全球商业格局的时代,企业亟需突破传统分销体系的效能边界,构建具有核心竞争力的现代化营销网络。我们以行业前沿技术为驱动,提供全栈式聚合分销系统定制开发服务,通过深度融合数字化、智能化解决方案&#xff0…...

【物联网】 ubantu20.04 搭建L2TP服务器

部署篇 序言 为了是两个客户端在同一个网络内,需要找一台服务器,搭建一个L2TP服务器,通过L2TP使两个客户端在同一个网络内,为什么要搭建,主要是解决例如员工出差后,还需要连接公司内网资源的问题,本文主要…...

std::ranges::iota

std::ranges::iota_view 和 std::views::iota 是 C23 Ranges 库中的一部分&#xff0c;用于生成一系列递增的值&#xff0c;类似 Python 的 range() 或传统的 for 循环生成器。 一 原形 Defined in header <numeric> Call signature template< std::input_or_output…...

物联网简介:万物互联的未来图景

物联网简介&#xff1a;万物互联的未来图景 引言 在科技飞速发展的今天&#xff0c;我们身边的一切似乎都在悄然发生变化。从清晨智能闹钟根据你的睡眠状态自动唤醒&#xff0c;到厨房里的咖啡机在你起床前已经煮好咖啡&#xff1b;从城市交通系统通过实时数据优化红绿灯时长…...

Python类方法解析:从字节序列重构Vector2d实例

这篇文章将详细解析Python中的classmethod装饰器&#xff0c;并通过一个实际案例——为Vector2d类实现frombytes方法&#xff0c;展示如何从字节序列重构对象实例。 类方法基础 classmethod是Python中一个重要的装饰器&#xff0c;它用于定义类方法。与普通实例方法不同&…...

list.forEach(s -> countService.refreshArticleStatisticInfo(s.getId())); 讲解一下语法

这段代码使用了Java中的forEach方法结合Lambda表达式来遍历一个列表&#xff0c;并对列表中的每个元素执行特定操作。具体来说&#xff0c;它会遍历列表中的每一个元素&#xff0c;并调用countService.refreshArticleStatisticInfo(s.getId())方法来刷新每个文章的统计信息。下…...

linux服务器与时间服务器同步时间

内网部署服务器&#xff0c;需要同步时间 使用系统内置的systemctl-timesyncd进行时间同步 1.编辑配置文件 sudo nano /etc/systemd/timesyncd.conf修改添加内容入下 [Time] NTP10.100.13.198 FallbackNTP#说明 #NTP10.100.13.198&#xff1a;你的主 NTP 时间服务器 IP #Fall…...

通过低功耗蓝牙通信实例讲透 MCU 各个定时器

📖 在嵌入式开发中,“定时器”几乎无处不在。但大多数人一说起定时器,要么只会 HAL_Delay(),要么搞不清楚硬件、虚拟、协议定时器到底有啥区别。 今天我们不讲纯理论,而是直接通过一个完整的 BLE 通信实例,带你一次性搞清楚 MCU 各类定时器的真实用途和工作机制。 📚…...

Spring_Boot(一)Hello spring boot!

新建项目加入 spring_web 依赖&#xff0c;生成如下 pom.xml文件&#xff0c;即为代码配置。 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XML…...

MySQL故障排查与生产环境优化

目录 一、前置知识点&#xff1a;MySQL 逻辑架构解析 &#xff08;一&#xff09;客户端和连接服务层&#xff08;最上层&#xff09; &#xff08;二&#xff09;核心服务层&#xff08;第二层&#xff09; &#xff08;三&#xff09;存储引擎层 &#xff08;四&#xf…...

mysql故障排查与环境优化

一、mysql运行原理 mysql的运行分为三层 客户端和连接服务 核心服务功能&#xff08;sql接口、缓存的查询、sql的分析和优化以及部分内置函数的执行等。&#xff09; 存储引擎层&#xff08;负责mysql中数据的存储和提取。&#xff09; 二、示例 1、实验环…...

博图1200硬件组态与启保停程序编写步骤详解

一、前言 在工业自动化控制领域&#xff0c;西门子S7-1200 PLC因其性能稳定、编程灵活而广受欢迎。本文将详细介绍使用TIA Portal&#xff08;博图&#xff09;软件进行S7-1200 PLC硬件组态以及编写基本启保停程序的完整步骤&#xff0c;帮助初学者快速掌握这一基础而重要的技…...

深入解析Java微服务架构:Spring Boot与Spring Cloud的整合实践

深入解析Java微服务架构&#xff1a;Spring Boot与Spring Cloud的整合实践 引言 随着云计算和分布式系统的快速发展&#xff0c;微服务架构已成为现代软件开发的主流模式。Java作为企业级应用开发的核心语言&#xff0c;结合Spring Boot和Spring Cloud的强大生态&#xff0c;…...

AM32电调学习解读九:ESC上电启动关闭全流程波形分析

这是第九篇&#xff0c;前面的文章把各个模块的实现都介绍了一轮&#xff0c;本章是从运行的角度结合波形图&#xff0c;把整个流程走一遍。 先看下一运行的配置&#xff0c;我把一些配置关闭了&#xff0c;这样跑起来会好分析一些&#xff0c;不同配置跑起来效果会有差异。使用…...

迅联文库开发日志(三)登陆注册

目录 一、注册 Controller层 Service层 二、登录 其他需要注意的&#xff1a; 需要实现 Serializable 的场景​ 一、注册 先思考我们需要哪些参数&#xff1a; 邮箱、昵称、密码、邮箱验证码 &#xff08;图片验证码会调用checkCode()验证&#xff09; Controller层 Req…...

Oracle 数据库的默认隔离级别

Oracle 数据库的默认隔离级别 默认隔离级别&#xff1a;READ COMMITTED Oracle 默认使用 读已提交(READ COMMITTED) 隔离级别&#xff0c;这是大多数OLTP(在线事务处理)系统的标准选择。 官方文档 https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/da…...

PDF 合并测试:性能与内容完整性

我们一直在改进 PDF 合并工具 JPedal&#xff0c;并希望通过测试对比其与其他工具的表现。该工具支持合并包括大文件在内的完整文档。 如何测试 PDF 合并输出 我们在示例文件上进行了对比测试&#xff0c;您也可以用自有文件复现。 测试中使用的方法之一是借助 Adobe Reader&a…...

白杨SEO:不到7天,白杨SEO博客网站百度搜索显示和排名恢复正常!顺带说说上海线下GEO聚会分享和播客红利

大家好&#xff0c;我是白杨SEO&#xff0c;专注SEO十年以上&#xff0c;全网SEO流量实战派&#xff0c;AI搜索优化研究者。 5月开始&#xff0c;明显就忙起来了&#xff0c;不管是个人陪跑还是企业顾问&#xff0c;不管是需要传统SEO还是新媒体流量&#xff0c;还是当下这个A…...

docker介绍与常用命令汇总

docker简介 docker是什么&#xff1f; Docker 是一个开源的应用容器引擎&#xff0c;它可以让开发者将应用与运行环境打包成一个标准的、可移植的容器&#xff08;Container&#xff09;&#xff0c;在任何地方都可以快速部署和运行&#xff0c;无需关心底层环境是否一致。 …...

Axure设计数字乡村可视化大屏:构建乡村数据全景图

今天&#xff0c;让我们一同深入了解由Axure设计的数字乡村可视化大屏&#xff0c;看看它如何通过精心的布局和多样化的图表类型&#xff0c;将乡村的各类数据以直观、易懂的方式呈现出来&#xff0c;为乡村管理者提供有力的数据支持。 原型效果预览链接&#xff1a;Axure数字乡…...

c#基础01(.Net介绍)

文章目录 .Net平台介绍.Net平台简介跨平台开源.Net Core.Net Framework开发工具安装选项 创建项目 .Net平台介绍 .Net平台简介 .NET是一种用于构建多种应用的免费开源开放平台&#xff0c;例如&#xff1a; Web 应用、Web API 和微服务 云中的无服务器函数 云原生应用 移动…...

GraphQL在.NET 8中的全面实践指南

一、GraphQL与.NET 8概述 GraphQL是一种由Facebook开发的API查询语言&#xff0c;它提供了一种更高效、更灵活的替代REST的方案。与REST不同&#xff0c;GraphQL允许客户端精确指定需要的数据结构和字段&#xff0c;避免了"过度获取"或"不足获取"的问题。…...

开源音视频转文字工具:基于 Vosk 和 Whisper 的多语言语音识别项目

背景介绍 随着短视频、播客等音视频内容的爆发式增长&#xff0c;快速将音视频内容转换为文字的需求也越来越大。无论是内容创作者需要的字幕&#xff0c;还是企业需要的会议记录&#xff0c;都需要一个可靠的语音转文字解决方案。 技术架构 本项目采用双引擎架构&#xff0…...

Playwright 多语言一体化——Python_Java_.NET 全栈采集实战

在现代 Web 自动化领域&#xff0c;Playwright 通过其多语言支持可在 Python、Java 及 .NET 三大生态中共享同一底层实现&#xff0c;简化了跨团队协作与维护成本 。然而&#xff0c;若忽略代理IP等必要配置&#xff0c;很容易导致功能异常或被目标网站限制&#xff0c;本文将以…...

【Linux网络】传输层协议UDP

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/qinjh_/category_12891150.html 目录 传输层 再谈端口号 端口号范围划分 认识知名端口号(Well-Know Port Number…...

VAPO:视觉-语言对齐预训练(对象级语义)详解

简介 多模态预训练模型(Vision-Language Pre-training, VLP)近年来取得了飞跃发展。在视觉-语言模型中,模型需要同时理解图像和文本,这要求模型学习二者之间的语义对应关系。早期方法如 VisualBERT、LXMERT 等往往使用预先提取的图像区域特征和文本词嵌入拼接输入,通过 T…...

自制操作系统day4(c指针)(指针和数组)(CLI和STI)(EFLAGS)

day4 关于c指针的理解&#xff08;结合汇编&#xff09; int i; char *p; p(char *) i; *pi &0x0f;p(char *) i; *pi &0x0f;MOV ECX,i MOV BYTE [ECX],(i &0x0f) 如果一开始不给p赋值&#xff0c;p的内存地址不确定&#xff0c;也就是这个ECX里的值不确定&#x…...

计算机视觉与深度学习 | Python实现ARIMA-WOA-CNN-LSTM时间序列预测(完整源码和数据

以下是一个结合ARIMA、鲸鱼优化算法(WOA)、CNN和LSTM进行时间序列预测的Python实现框架。由于完整代码和数据量较大,此处提供核心代码结构和示例数据集,您可根据需求扩展。 1. 数据准备(示例数据) 使用airline-passengers.csv(航空乘客数据集): import pandas as pd…...

SCGI 服务器详解

1 协议与报文格式 项目说明连接类型长连接&#xff0c;单条 TCP/UnixSocket 可传多请求&#xff1b;由前端&#xff08;Nginx 等&#xff09;维护 keep-alive。报文分段"<len>:" <header netstring> "," <body><len> 计数10 进…...

Linux问题排查-找到偷偷写文件的进程

在 Linux 系统中&#xff0c;若要通过已修改的文件找到修改该文件的进程 PID&#xff0c;可以结合以下方法分析&#xff0c;具体取决于文件是否仍被进程打开或已被删除但句柄仍存在&#xff1a; 一、文件仍被进程打开&#xff08;未删除&#xff09; 如果文件当前正在被某个进…...

Linux的权限问题

引入&#xff1a;权限的意义是什么&#xff1f; 权限就是为了让人能做某些事或不能做某些事 一&#xff1a;Linux下的用户种类 Linux下只有两种用户&#xff1a;root 和 普通用户 root&#xff1a;拥有至高无上的权限&#xff0c;任何的权限都不能限制root 普通用户&#xf…...

WPF技巧-BindingProxy

WPF技巧-BindingProxy 文章目录 WPF技巧-BindingProxy&#x1f50d; 分析与解释1. **继承 Freezable**2. **重写 CreateInstanceCore 方法**3. **定义 DependencyProperty&#xff1a;Data** ✅ 使用场景场景说明&#xff1a;解决方案&#xff1a;示例 XAML&#xff1a; &#…...

深度解析:Redis 性能优化全方位指南

Redis 作为当前最流行的内存数据库之一&#xff0c;以其高性能、低延迟和丰富的数据结构支持&#xff0c;被广泛应用于缓存、消息队列、实时统计等场景。然而&#xff0c;随着业务规模的增长&#xff0c;Redis 可能面临性能瓶颈&#xff0c;如高延迟、内存不足、吞吐量下降等问…...

OpenHarmony外设驱动使用 (五),Fingerprint_auth

OpenHarmony外设驱动使用 &#xff08;五&#xff09; Fingerprint_auth 概述 功能简介 指纹认证是端侧设备不可或缺的功能&#xff0c;为设备提供用户认证能力&#xff0c;可应用于设备解锁、支付、应用登录等身份认证场景。用户注册指纹后&#xff0c;指纹认证模块就可为设…...

.NET外挂系列:2. 了解强大的 harmony 注解特性

一&#xff1a;背景 1. 讲故事 上一篇我们简单的聊了下harmony外挂的基本玩法&#xff0c;让大家宏观上感受到了外挂在 .NET高级调试 领域的威力&#xff0c;这一篇我们从 注解特性 这个角度继续展开。 二&#xff1a;harmony 注解特性 1. HarmonyPatch 解读 在harmony支持…...

【Arm】应用ArmDS移植最小FreeRTOS系统

一、文档背景 FreeRTOS&#xff08;Free Real-Time Operating System&#xff09;是一个开源的实时操作系统内核&#xff0c;广泛应用于嵌入式系统。它具有小巧、灵活、低功耗等特点&#xff0c;支持多任务调度、信号量、队列等实时操作系统基本功能。 将FreeRTOS移植到特定硬…...

Python----目标检测(labelimg和labelme的安装与使用,Pycharm配置教程)

一、labelimg labelimg是一款开源的图像标注工具&#xff0c;标签可用于分类和目标检测&#xff0c;它是用python写的&#xff0c;并使用Qt作为其图形界面&#xff0c;简单好用&#xff08;虽然是英文版的&#xff09;。其注释以 PASCAL VOC格式保存为XML文件&#xff0c;这是I…...

Axure跨页面交互:利用IFrame和JS实现父子页面菜单联动

在 Axure 中使用内联框架&#xff08;IFrame&#xff09;进行父子页面间的通信是一个非常有效的技巧&#xff0c;尤其是在需要实现复杂交互逻辑时。通过 JavaScript 直接操作 DOM 元素&#xff0c;可以突破 Axure 基础元件的限制&#xff0c;实现更灵活的页面联动。以下是对你描…...

百度飞桨OCR(PP-OCRv4_server_det|PP-OCRv4_server_rec_doc)文本识别-Java项目实践

什么是OCR? OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;是一种通过技术手段将图像或扫描件中的文字内容转换为可编辑、可搜索的文本格式&#xff08;如TXT、Word、PDF等&#xff09;的技术。它广泛应用于文档数字化、信息提取、自动化…...

救生衣穿戴检测数据集VOC+YOLO格式2171张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2171 标注数量(xml文件个数)&#xff1a;2171 标注数量(txt文件个数)&#xff1a;2171 …...

JAVA请求vllm的api服务报错Unsupported upgrade request、 Invalid HTTP request received.

环境&#xff1a; vllm 0.8.5 java 17 Qwen3-32B-FP8 问题描述&#xff1a; JAVA请求vllm的api服务报错Unsupported upgrade request、 Invalid HTTP request received. WARNING: Unsupported upgrade request. INFO: - "POST /v1/chat/completions HTTP/1.1&…...

信号量基础入门:并发控制的核心概念

问题的复杂性产生的根本原因在于&#xff0c;如 2.2 节所述&#xff0c;共享变量的访问始终是“单向信息流”。也就是说&#xff0c;一个进程可以分配新值或检查当前值&#xff0c;但这种检查不会为其他进程留下任何痕迹。结果是&#xff0c;当一个进程想要对共享变量的当前值作…...

物联网之使用Vertx实现HTTP/WebSocket最佳实践

小伙伴们&#xff0c;你们好呀&#xff0c;我是老寇&#xff0c;跟我一起学习使用Vertx实现HTTP-Server和WebSocket-Server 实现Http/WebSocket【响应式】 Vertx-Web地址 实现过程 查看源码 代码比较简单&#xff0c;懒得讲解啦 代码比较简单&#xff0c;懒得讲解啦 代码…...

【神经网络与深度学习】GAN 生成对抗训练模型在实际训练中很容易判别器收敛,生成器发散

引言部分 在深度学习领域&#xff0c;生成对抗网络&#xff08;GAN&#xff09;是一种强大的数据生成方法&#xff0c;它通过生成器&#xff08;G&#xff09;和判别器&#xff08;D&#xff09;之间的博弈来不断优化模型。然而&#xff0c;在实际训练过程中&#xff0c;GAN 往…...

使用 NGINX 的 `ngx_http_secure_link_module` 模块保护资源链接

一、模块简介 版本&#xff1a;自 NGINX 0.7.18 起引入 功能&#xff1a; 签名校验&#xff1a;对请求 URI 中的签名进行校验&#xff0c;保证链接未经篡改。时效控制&#xff1a;根据请求中携带的过期时间&#xff0c;判断链接是否仍在有效期。 启用方式&#xff1a;编译 NG…...

5月19日day30打卡

模块和库的导入 知识点回顾&#xff1a; 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑&#xff1a;找到根目录&#xff08;python解释器的目录和终端的目录不一致&#xff09; 作业&#xff1a;自己新建几个不同路径文件尝试下如何导入 一、导入官方库 …...

NW860NW894美光闪存颗粒NX770NX789

在数字化浪潮席卷全球的当下&#xff0c;数据存储技术的革新正以惊人的速度推动着硬件性能的边界。美光科技作为半导体存储领域的领军者&#xff0c;其NW860、NW894、NX770、NX789系列闪存颗粒凭借前沿架构与精密工艺&#xff0c;成为高性能存储解决方案的核心载体。本文将深入…...

高性能锁机制 CAS:Java 并发编程中的深度剖析

引言 在并发编程领域&#xff0c;i操作的非线程安全性是开发者们熟知的问题。这一现象根源在于i并非原子操作&#xff0c;其内部执行过程包含读取、修改和写入三个步骤&#xff0c;在多线程环境下极易因线程切换导致数据竞争与不一致&#xff0c;这与我们此前探讨的多线程常见问…...