Halcon图像预处理算子 sobel算子、傅里叶变换算子、卷积算子
滤波类型 | 算子 | 适用噪声 | 特点 |
均值滤波 | mean_image | 高斯噪声 | 平滑均匀,可能额模糊边缘 |
中值滤波 | median_image | 椒盐噪声 | 保留边缘,抑制脉冲噪声 |
高斯滤波 | gauss_filter | 高斯噪声 | 加权平均,边缘更平滑 |
均值滤波
mean_image(Image,ImageMean,MaskWidth,MaskHeight)
优点: 对图像内部的噪声及模糊有着很好的作用,有效的平滑图像,适用于处理高斯噪声
缺点:会将图像的边缘信息与特征信息“模糊”点,丢失很多特征
- Image: 输入图像
- ImageMean: 滤波后的图像
- MaskWidth,MaskHeight: 滤波核的宽度和高度
注意:MaskWidth和MaskHeight 必须是奇数,核越大,平滑效果就越强,细节损失也大
使用5*5的卷积核,适合去除较大噪声
read_image (Image, 'F:/素材收集/图片素材/01.jpg')
get_image_size (Image, Width, Height)* 获得一个高斯噪声分布,添加到图像
gauss_distribution (20, Distribution)
add_noise_distribution (Image, ImageNoise, Distribution)mean_image (ImageNoise, ImageMean, 9, 9)
dev_open_window (0, 0, 254, 252, 'black', WindowHandle)
dev_display (Image)
效果
中值滤波
优点:对脉冲噪声核椒盐噪声有很好的去除效果
能够有效的保护图像的边缘信息
median_image(Image,ImageMedian,MaskType,Radius,Margin)
- Image: 输入图像
- ImageMedian: 滤波后的图像
- MaskType: 滤波掩模形状 'circle': 'square'
- Radius : 滤波掩模的半径(像素) Raius=2 表示圆形掩模直径为5 (2*2+1)
- Margin: 边界处理方式 常用有'mirrored'、'cyclic'、'continued'等
read_image (Image, 'F:/素材收集/图片素材/01.jpg')
get_image_size (Image, Width, Height)* 添加椒盐噪声
sp_distribution (5, 5, Distribution)
add_noise_distribution (Image, ImageNoise, Distribution)*使用中值滤波
median_image (ImageNoise, ImageMedian, 'square', 3, 'mirrored')
median_image (ImageNoise, ImageMedian, 'square', 5, 'mirrored')dev_open_window (0, 0, 254, 252, 'black', WindowHandle)
dev_display (ImageMedian)
效果
高斯滤波
gauss_filter (Image,ImageGauss,Size)
-
Image: 输入的图像
-
ImageGauss: 输出的图像
-
Size: 滤波的尺寸.尺寸值越大,平滑效果越明显.常用的尺寸有3,5,7,9等奇数值
优势: 消除高斯噪声
read_image (Image, 'F:/素材收集/图片素材/01.jpg')
get_image_size (Image, Width, Height)* 添加高斯噪声
gauss_distribution (20, Distribution)
add_noise_distribution (Image, ImageNoise, Distribution)*使用高斯滤波
gauss_filter (Image, ImageGauss, 5)
dev_open_window (0, 0, 254, 252, 'black', WindowHandle)
dev_display (ImageGauss)
效果
直方图均衡
equ_histo_image(Image,ImageEquHisto)
优点:用于增强图像
缺点:直方图均衡可能放大噪声,建议进行降噪处理
* 直方图均衡化* 将密集的灰度值拉开一定的距离
* 作用: 使有蒙层的图像 马赛克 ... 图像变得更清晰
read_image (Image, 'F:/Halcon/Image/2.tif')
get_image_size (Image, Width, Height)
dev_open_window_fit_size (0, 0, Width, Width, -1, -1, WindowHandle)
dev_display (Image)* 直方图均衡化
equ_histo_image (Image, ImageEquHisto)
效果
灰度直方图
相比于Visionpro 中的 histogram 直接生成直方图对象(Region类型),适合可视化
gray_histo(Region,Image,AbsoluteHisto,RelativeHisto)
- Region: 感兴趣区域(ROI),限定统计范围
- Image: 输入图像(单通道灰度图)
- AbsoluteHisto: 绝对直方图(各灰度级像素数量)
- RelativeHisto: 相对直方图(各灰度级像素占比,总和为1)
read_image (Image, 'printer_chip/printer_chip_01')
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_disp_text ('展示Image的直方图', 'window', 'top', 'left', 'black', [], [])gray_histo (Image, Image, AbsoluteHisto, RelativeHisto)* 将灰度直方图的绝对分布 生成区域类型
gen_region_histo (Region, AbsoluteHisto, 255, 255, 1)
效果
-
read_image (Image, 'printer_chip/printer_chip_01') dev_close_window () get_image_size (Image, Width, Height) dev_open_window_fit_size (0, 0, Width, Width, -1, -1, WindowHandle) dev_display (Image) emphasize (ImageInvert, ImageEmphasize, Width, Height, 1)
对比度
对比度调整用于在低对比度或光照不均的场景中
emphasize (ImageInvert, ImageEmphasize, Width, Height, 1)
- 参数1: 原始图像
- 参数2:输出图像
- 参数3、参数4、参数5 值越大 对比度越明显
read_image (Image, 'printer_chip/printer_chip_01')
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window_fit_size (0, 0, Width, Width, -1, -1, WindowHandle)
dev_display (Image)
emphasize (ImageInvert, ImageEmphasize, Width, Height, 1)
效果
线性对比度
scale_image(Image,ImageScaled,0.5,0)
* 增强亮度
scale_image(Image,ImageScaled1,1,100)
* 减少亮度
scale_image(Image,ImageScaled2,1,-100)公式:灰度值=原值*2.5+10
- 参数1:输入图像
- 参数2:输出图像
- 参数3: 比例 大于等于1的值 图像更亮
- 小于1的值 图像更暗
- 参数4:补偿值
非线性
log_image (Image, LogImage, 2)
pow_image (Image, PowImage, 2)
-
参数1:输入图像
-
参数2:输出图像
-
参数3:底数
read_image (Image, 'printer_chip/printer_chip_01')
dev_close_window ()
get_image_size (Image, Width, Height)dev_open_window_fit_size (0, 0, Width, Width, -1, -1, WindowHandle)
dev_display (Image)* 对数变化 压缩灰度值的级别 降低高灰度值的级别
* 参数1:输入图像
* 参数2:输出图像
* 参数3:底数
log_image (Image, LogImage, 2)* 指数变化 选择增强低灰度值 或者 高灰度值的对比度
* 参数3
* 指数: 0-1 增强高灰度值对比度
* 大于等于1 增强低灰度值对比度
pow_image (Image, PowImage, 2)
傅里叶变换
傅里叶分析-CSDN博客
在我认为傅里叶变换就好比:在一个教室里面老师带着学生唱校歌,有各种声音还有夏天的知了的鸣叫声,这好多声音混杂在一块,随着时间的变换就叫做时域,而我们需要在这混乱的声音中提取老师的声音,这个就叫做频域,频域有很多。
这里的图片就是我们日常生活中拍照一样,但是拍照中他也是有噪音,有各种杂斑,所以我们拍出来的照片,都是富含各种杂事,看着不好看,这就叫做时域,我们需要把这图像的杂拌去掉,进行美颜,这从中就是把图像中某些频域给去掉了
注意:以上是我个人理解的。
rft_generic(Image,ImageFFT,Direction,ResultType,Width)
fft_generic(Image,ImageFFT,Direction,Exponent,Norm,Mode,ResultType)
区别:rft 是计算图像的实值快速傅里叶变换
fft是计算输入图像的快速傅里叶变换
- Image: 输入图像
- ImageFFT: 傅里叶转换后的图像
- Direction: 计算正向或反向
- 'to_freq':表示从时域转为频域;输入的图像必须具有实值类型
- 'from_freq': 表示从频域转为时域;输入图像必须是复杂的
- ResultType: 转换后的数据存储方式,即单个像素的数组存储方式。从时域转为频域使用‘complex’ 从频域转为时域用‘real’
'byte': 灰度图像
'int1': 实值图像
'real': 实值图像
'complex': 复数图像
- Exponent: 对应公式中指数符号,前向变换用-1,后向变换用1
- Norm: 变换的归一化因子
- 默认值: 'sqrt' (开根号,c=sqrt(M*N),变量)
- 'n'(图像)
- 'none'(不使用,c=1)
- Width: 图像宽度 默认值512
傅里叶卷积
convol_fft (ImageFFT, ImageFilter, ImageConvol)
在频域内对图像与滤波器进行卷积,将复杂的图像ImageFFT的像素乘以滤波器ImageFile
的相应像素
- 傅里叶图像
- 滤波图像
- 卷积图像
首先将图像在水平(竖直)方向与滤波器进行卷积;然后卷积后的结果在竖直(水平)方向使用相同的滤波器函数得到的模板进行卷积运算
线高斯
lines_gauss(Image,Lines,Sigma,Low,High,LightDark,ExtractWidth,LineModel,CompleteJunctions)
- Image: 输入的图像
- Lines: 检测线条(XLD)
- Sigma: 高斯滤波值 典型范围 0.7~20 建议 0.1 默认 1.5
- Low: 滞后阈值分割的低阈值 0~20 建议0.5 默认3
- High: 滞后阈值分割的高阈值 0~35 建议0.5 默认8
- LightDark: 提取的线条类型('dark'(暗线),'light'(亮线))
- ExtractWidth: 是否提取线宽('false','true')
- LineModel: 用来调整线条的位置和宽度的线模型(’bar-shaped‘,’gaussian‘,’none‘,’parabolic‘)
- CompleteJunctions: 在锻炼的部分是否添加节点使线条连续('false','true')
缩放图像
zoom_image_factor(Image,ImageZoomed,ScaleWidth,ScaleHeight,Interpolation)
缩放因子实现图像缩放
- 原图像
- 缩放后保存的图像
- 图像宽度的比例因子 默认值:0.5
- 图像高度的比例因子 默认值:0.5
- 插值类型 默认值:'constant'
read_image (Image, 'printer_chip/printer_chip_01')
get_image_size (Image, Width, Height)
dev_display(Image)
gen_gauss_filter (ImageGauss, 100, 100, 0, 'n', 'rft', Width, Height)
*时域转频域
rft_generic (Image, ImageFFT, 'to_freq', 'none', 'complex', Width)
*卷积计算
convol_fft (ImageFFT, ImageGauss, ImageConvol)
*频域转时域
rft_generic (ImageConvol, ImageFFT1, 'from_freq', 'none', 'byte', Width)
*图像作差 用于计算两幅图像的差值 用原图减去滤波后的图像得到锐化图像
sub_image (Image, ImageFFT1, ImageSub, 10, 80)
*对图像进行放大和缩小
zoom_image_factor (ImageSub, ImageZoomed, 0.5, 0.5, 'constant')
*绘制高斯提取线
lines_gauss (ImageZoomed, Lines, 0.2, 3, 8, 'light', 'true', 'bar-shaped', 'true')
dev_display (Lines)
图像锐化Sobel算子
sobel_amp (Image, EdgeAmplitude, 'FilterType',Size)
- 输入图像
- 突出边缘图像
- 过滤器类型 值为 sum_abs、thin_sum_abs、thin_max_abs、sum_sqrt、x、y
- 过滤掩模尺寸 值越大,提取的轮廓边缘越暗
read_image (Image, 'printer_chip/printer_chip_01')dev_close_window ()
get_image_size (Image, Width, Height)dev_open_window_fit_size (0, 0, Width, Width, -1, -1, WindowHandle)dev_display(Image)
sobel_amp (Image, EdgeAmplitude, 'x',11)
sobel_amp (Image, EdgeAmplitude, 'y',11)
sobel_amp (Image, EdgeAmplitude, 'sum_abs',11)
sobel_amp (Image, EdgeAmplitude, 'thin_sum_abs',11)sobel_amp (Image, EdgeAmplitude, 'thin_max_abs',11)ThresholdValue:=35
threshold (EdgeAmplitude, Region, ThresholdValue, 255)
效果 x y sum_abs thin_sum_abs thin_max_abs
高通滤波
gen_highpass (ImageHighpass, Frequency, Norm, Mode, Width, Height)
特点: 值越大、说明保留细节越少、值越小、说明保留细节越多
read_image (Image, 'printer_chip/printer_chip_01')
dev_display (Image)
get_image_size (Image, Width, Height)* 获取一个高通滤波模型
gen_highpass (ImageHighpass, 0.1, 'none', 'dc_center', Width, Height)* 对图像进行傅里叶变换到频域图像
fft_generic (Image, ImageFFT, 'to_freq', -1, 'sqrt', 'dc_center', 'complex')* 对频率图像进行高通滤波
convol_fft (ImageFFT, ImageHighpass, ImageConvol)
* 对的到的频率进行傅里叶变换
fft_generic (ImageConvol, ImageFFT1, 'to_freq', -1, 'sqrt', 'dc_center', 'complex')
效果 高通滤波后 傅里叶变换后
低通滤波
gen_lowpass (ImageLowpass, 0.1, 'none', 'dc_center', Width, Height)
值越小、越模糊、值越大、越清晰
read_image (Image, 'printer_chip/printer_chip_01')
dev_display (Image)
get_image_size (Image, Width, Height)* 创建一个椒盐噪声
sp_distribution (5, 5, Distribution)
* 将噪声添加到Image上 产生一个带有噪声的图像
add_noise_distribution (Image, ImageNoise, Distribution)dev_display (ImageNoise)* 获取一个低通滤波模型
gen_lowpass (ImageLowpass, 0.1, 'none', 'dc_center', Width, Height)* 对图像进行傅里叶变换到频域图像
fft_generic (ImageNoise, ImageFFT, 'to_freq', -1, 'sqrt', 'dc_center', 'complex')* 对频率图像进行低通滤波
convol_fft (ImageFFT, ImageLowpass, ImageConvol)
* 对的到的频率进行傅里叶变换
fft_generic (ImageConvol, ImageFFT1, 'to_freq', -1, 'sqrt', 'dc_center', 'complex')
效果 低通滤波 傅里叶变换后
加减乘除
read_image (Image, 'C:/Users/zpp/AppData/Roaming/MVTec/HALCON-23.05-Progress/examples/images/automotive/engine_part_007.png')
read_image (Image1, 'C:/Users/zpp/AppData/Roaming/MVTec/HALCON-23.05-Progress/examples/images/automotive/car_door_01.png')
dev_close_window ()
*get_image_size (Image, Width, Height)add_image (Image, Image1, ImageResult, 0.5, 0)sub_image (Image, Image1, ImageSub, 1, 128)mult_image (Image, Image1, ImageResult2, 0.005, 0)div_image (Image, Image1, ImageResult1, 255, 0)
加 减 乘 除
相关文章:

Halcon图像预处理算子 sobel算子、傅里叶变换算子、卷积算子
滤波类型算子适用噪声特点均值滤波mean_image高斯噪声平滑均匀,可能额模糊边缘中值滤波median_image椒盐噪声保留边缘,抑制脉冲噪声高斯滤波gauss_filter高斯噪声加权平均,边缘更平滑 均值滤波 mean_image(Image,ImageMean,MaskWidth,MaskHe…...
Java Web应用中获取客户端的真实IP地址
Java Web应用中获取客户端的真实IP地址,尤其在存在代理服务器的情况下。 代码示例: public static String getClientIP(HttpServletRequest request) {String ip = parseCommaSeparatedIPs(request.getHeader("X-Forwarded-For"));if (isInvalid(ip)) {ip = pars…...
洛谷————P11559 【MX-X7-T0】[LSOT-3] 嗯欧哎
P11559 【MX-X7-T0】[LSOT-3] 嗯欧哎 题目背景 原题链接:MXOJ Next。 嗯欧哎是欧哎界的知名比赛。本题可以用来检验嗯欧哎是否发挥出了真实水平。 此名称纯属虚构,不影射任何现实中的比赛或机构的名称。如有雷同,纯属巧合。 题目描述 一…...

2020年SCI1区TOP:异质综合学习和动态多群体粒子群算法HCLDMS-PSO,深度解析+性能实测
目录 1.摘要2.改进策略3.结果展示4.参考文献5.代码获取 1.摘要 本文提出了一种异质综合学习和动态多群体粒子群算法(HCLDMS-PSO),该算法在综合学习(CL)策略的基础上,通过利用整个种群的全局最优经验来生成…...

FinRobot:一个使用大型语言模型进行金融分析的开源AI代理平台
文章目录 前言一、生态系统1. 金融AI代理(Financial AI Agents)2. 金融大型语言模型(Financial LLMs)3. LLMOps4. 数据操作(DataOps)5. 多源LLM基础模型(Multi-Source LLM Foundation Models&am…...

【windows driver】 开发环境简明安装教程
一、下载路径 https://learn.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads 二、安装步骤: 1、安装Visual Studio IDE 笔者建议安装最新版本,可以向下兼容。发文截止到目前,VS2022是首选,当前笔者由于项…...
强制完整性级别(MIL)和用户账户控制(UAC)的联系与区别
强制完整性级别(MIL) 和 用户账户控制(UAC) 都是 Windows 操作系统中的安全机制,旨在增强系统的安全性并防止恶意软件和攻击者在系统中获得更高的权限。尽管它们有共同的目标,但它们的工作原理、应用范围和…...

性能附录:如何计算并发用户数(摘自高楼老师《性能30讲》)
高楼老师《性能30讲》: 性能测试实战30讲-极客时间 感兴趣的同学可以去读一下,个人感觉写的非常好 目录 什么是并发? 在线用户数、并发用户数怎么计算 总结 什么是并发? 我们假设上图中的这些小人是严格按照这个逻辑到达系统的,那显然,…...

视频推拉流EasyDSS点播平台云端录像播放异常问题的排查与解决
EasyDSS视频直播点播平台是一个功能全面的系统,提供视频转码、点播、直播、视频推拉流以及H.265视频播放等一站式服务。该平台与RTMP高清摄像头配合使用,能够接收无人机设备的实时视频流,实现无人机视频推流直播和巡检等多种应用。 最近&…...

【Python系列】Python 连接 PostgreSQL 数据库并查询数据
???欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老…...

辛格迪客户案例 | 甫康(上海)健康科技有限责任公司药物警戒管理系统(PVS)项目
01 案例企业 甫康(上海)健康科技有限责任公司(简称“甫康”)该公司成立于2015年11月3日。公司的核心团队由来自中国和国外顶级制药公司的专业人士组成,与中国科学院上海药物研究所等知名研究机构保持紧密合作。此外,甫康药业还与…...

重新审视 ChatGPT 和 Elasticsearch:第 2 部分 - UI 保持不变
作者:来自 Elastic Jeff Vestal 本博客在第 1 部分的基础上进行了扩展,介绍了基于 RAG 的搜索系统的功能齐全的 Web UI。最后,你将拥有一个将检索、搜索和生成过程结合在一起的工作界面,同时使事情易于调整和探索。 不想读完整个内…...

坐标变换及视图变换和透视变换(相机透视模型)
文章目录 2D transformationScaleReflectionShear(切变)Rotation around originTranslationReverse变换顺序复杂变换的分解 齐次坐标(Homogenous Coordinates)3D transformationScale&TranslationRotation Viewing / Camera t…...

基于反激电路的电池充放电均衡控制
基于反激电路的电池充放电均衡控制是一种高效的能量转移型主动均衡方法,适用于锂离子电池组等串联电池组的管理。以下从原理、拓扑结构、控制策略和设计要点进行详细分析: 一、基本原理 反激电路(Flyback Converter)是一种隔离型…...

Windows版FFmpeg使用及B站视频下载示例python源码
Windows版FFmpeg使用及B站视频下载示例python源码 FFmpeg介绍和下载 FFmpeg 是一个功能强大、灵活且广泛使用的多媒体处理工具,无论是在专业领域还是日常使用中,都能满足各种多媒体处理需求。FFmpeg 是一个开源项目,遵循 LGPL 或 GPL 许可。…...
leetcode_动态规划/递归 509. 斐波那契数
509. 斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1F(n) F(n - 1) F(n - 2),其中 n …...

对泰坦尼克号沉没事件幸存者数据分析和预测
一、分析目的 探究决定泰坦尼克号沉没事件中什么因素决定着船上人的生死,并对实例进行判别和预测。 二、数据介绍 Titanic.csv数据中包含了891个样本,记录了泰坦尼克号遇难时的891个乘客的基本信息,其中包括以下信息: Passenger…...
算法之排序算法
排序算法 ♥常见排序算法知识体系详解♥ | Java 全栈知识体系 算法 - 排序 | CS-Notes 面试笔记 十大经典排序算法总结 | JavaGuide...
DMA发送全部历史记录数据到串口
背景 博主参与的项目中,有个读取全部历史记录的功能,如果下位机在主程序中将全部历史记录单纯地通过串口传输会比较占用cpu资源,影响主程序中别的功能。最后商量得出以下实现方案: 定义两个发送缓冲区DMATxbuf1和DMATxbuf2&…...

蓝桥杯好题推荐-----高精度减法
🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 题目链接 记录详情 - 洛谷 | 计算机科学教育新生态https://www.luogu.com.cn/record/205122671 思路讲解 这个题目的解题思路,其实是和高精度加法是非常像的。怎么说…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...