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

数字图像处理-7-图像的梯度锐化算法

文章目录

  • 1. 门限梯度锐化
  • 2. 梯度二值化
  • 3. 固定值梯度锐化

图像梯度是灰度值在空间上的变化速率。平滑区域梯度小(灰度均匀),边缘区域梯度大(灰度急变)。
其实这种方法在前面也说过,计算公式如下: 一阶差分近似

G(x, y) = sqrt( (f(x,y) - f(x-1,y))² + (f(x,y) - f(x,y-1))² )

梯度锐化根据梯度大小采取三种不同的增强策略:

    1. 门限锐化 — 梯度大则增加固定亮度 +100(可动态调整),边缘变亮但保留纹理
    1. 二值化 — 根据梯度输出纯黑/白二值图,清晰显示边缘轮廓
    1. 固定锐化 — 梯度大则强制输出白色,否则保留原灰度值

下面是一阶差分近似梯度的python代码,在下面三种方法中都会用到, 原理简单.就是计算上下,左右 的梯度值, 然后求各个维度差分平方的和.
这里说明下下面代码片段中默认阈值(GRADIENT_THRESHOLD=30)

def_compute_gradient(img,x,y):""" 计算像素 (x, y) 的梯度幅度(使用左邻和上邻的一阶差分)。 公式: G = sqrt( dx² + dy² ) dx = f(x, y) - f(x-1, y) dy = f(x, y) - f(x, y-1) """curr=img.get_pixel(x,y)left=img.get_pixel(x-1,y)up=img.get_pixel(x,y-1)dx=curr-left dy=curr-upreturnmath.sqrt(dx*dx+dy*dy)

1. 门限梯度锐化

  • 原理:
    对边缘区域(梯度≥阈值)叠加固定亮度 100(默认),使边缘在视觉上更突出;
    平坦区域保持原值,不破坏背景纹理细节。

  • 处理方法:
    设置阈值threhold, 如果超过了阈值,则在当前灰度值上面叠加指定的灰度值,让图像边缘更突出

    G >= threshold → output = min(G + 100, 255) [边缘增亮] G < threshold → output = 原始像素值 [平坦区域不变]
  • python代码

defthreshold_enhance(img,threshold=GRADIENT_THRESHOLD):result=img.clone()foryinrange(1,img.height):forxinrange(1,img.width):g=_compute_gradient(img,x,y)ifg>=threshold:result.set_pixel(x,y,min(255,g+100))# g < threshold 时 clone 的原值保持不变returnresult
  • 效果图

2. 梯度二值化

  • 原理:
    对梯度图像进行全局阈值分割,输出纯黑白二值图。结果图像清晰地勾勒出边缘轮廓,常用于后续形态学处理。

  • 处理方法:
    这其实就是二值化的处理过程

    G > threshold → output = 255 (白色,边缘) G <= threshold → output = 0 (黑色,非边缘)
  • python代码

defbinary_threshold(img,threshold=GRADIENT_THRESHOLD):result=Image(img.width,img.height)# 默认全黑foryinrange(1,img.height):forxinrange(1,img.width):g=_compute_gradient(img,x,y)result.set_pixel(x,y,255ifg>thresholdelse0)returnresult
  • 效果图

3. 固定值梯度锐化

  • 原理:
    介于门限增强和二值化之间:
    边缘被强制置为最大亮度(255),突出轮廓;
    非边缘区域保留原始灰度,保持背景信息可读。
  • 处理方法:
    G > threshold → output = 255 [边缘高亮为白色]
    G <= threshold → output = 原始像素值 [非边缘保留原灰度]
deffixed_enhance(img,threshold=GRADIENT_THRESHOLD):result=img.clone()foryinrange(1,img.height):forxinrange(1,img.width):g=_compute_gradient(img,x,y)ifg>threshold:result.set_pixel(x,y,255)# g <= threshold 时保持 clone 的原值returnresult
  • 效果图
http://www.jsqmd.com/news/881530/

相关文章:

  • 诗心撷珍 | 李白诗行里,那些被忽略的星辰与旷野
  • 量子核方法在工业音频异常检测中的实践与性能突破
  • ZS315Q Type-C转DP1.4带PD100w方案,边投屏边充电,告别接口焦虑
  • SQL like 与 正则 区别
  • 2026年比较好的丽水本地获客渠道实力公司推荐 - 品牌宣传支持者
  • 南宁口碑好的旧改企业哪家靠谱
  • 安全稀疏矩阵乘法:基于二叉树递归传播的MPC算法优化详解
  • 二、大模型节点配置以及结束节点配置
  • 异常断电导致存储崩溃:Linux IO栈级数据恢复实战
  • 阿拉伯语多模态机器学习:从数据构建到模型融合的工程实践
  • AscendSiPBoost信号处理加速库架构与实战
  • 什么是ERC-8183
  • 安全多方计算在隐私保护AI推理中的应用:FHE与混淆电路协议对比
  • 【论文阅读】VLAW: Iterative Co-Improvement of Vision-Language-Action Policy and World Model
  • List<T>泛型列表
  • 如何让政策数据在三个端保持同步?政策快报的实践方案
  • c++ csv?_?C++处理csv文件格式的fstream与字符串分割方法详解.txt
  • 2026年免费照片去水印软件App推荐,一看就会的保姆级详细教程
  • Infineon XC16x中断处理机制解析与优化实践
  • 神经网络原理 第九章:自组织映射
  • VR+机器学习:跨语言阅读障碍识别的新范式
  • leetcode 61. 旋转链表 中等
  • 测试前端代码!
  • FPGA与机器学习协同加速量子点自动调谐:原理、实现与性能分析
  • 网络体系结构 | 物理层:传输介质与编码
  • 集成光子学与连续变量量子光学技术解析
  • 《Visual Studio 2022中高效使用Git的实战总结:团队协作与版本控制指南》
  • 祖玛游戏开发:状态机与路径拓扑的工程实践
  • 2026年质量好的大孔径深孔钻镗床/德州圆钢深孔钻镗床口碑好的厂家推荐 - 品牌宣传支持者
  • AArch64虚拟内存系统架构与权限控制详解