使用一阶微分对图像锐化
Using First-Order Derivatives for (Nonlinear)Image Sharpening ----The Gradient
对于函数ƒ(x,y), ƒ在坐标(x,y)处的梯度定义为二维列向量
(1)
它指出了在位置(x,y)处ƒ的最大变化率的方向。
向量▽ƒ的幅度值(长度)表示为M(x,y),即
(2)
它是梯度向量方向变化率在(x,y)的值。当x,y允许在ƒ中的所有像素位置变化时,M(x,y)是与原图像大小相同的图像。通常该图像称为梯度图像(简称为梯度)。
在某些实现中,用绝对值来近似平方和平方根操作更合适计算
(3)
该表达式仍保留了灰度的相对变化,但是失去了各向同性特征。
gx,gy近似表示为
(4)
这两个公式可以用以下两个模板实现,(a)中的模板实现的3x3图像区域的第三行和第一行的差近似x方向的微分,(b)模板中的第三列和第一列的差近似了y方向的微分。
-1 | -2 | -1 |
0 | 0 | 0 |
1 | 2 | 1 |
(a)
-1 | 0 | 1 |
-2 | 0 | 2 |
-1 | 0 | 1 |
(b)
附上我的MATLAB实现代码
%%%%%%%梯度锐化图像(sobel算子)%%%%%%%Mask = 3; %滤波器模板大小(3x3)ImageDataTemp = imread('lena.jpg'); %读取工程目录下的图片 ImageDataGray = rgb2gray(ImageDataTemp); %转换为灰度图像 ImageResult = size(ImageDataGray); %存储处理后的图像 clear ImageDataTemp; %清除过程变量 Temp = padarray(ImageDataGray, [(Mask-1)/2 (Mask-1)/2]); %扩展图像,防止算子模板覆盖在图像外 [j,k] = size(ImageDataGray);SobelOperatorsX = [-1 -2 -1 0 0 01 2 1]; SobelOperatorsY = [-1 0 1-2 0 2-1 0 1]; Part = zeros(3, 3, 'double'); for x = 2:j+1for y = 2:k+1Part = double(Temp(x - 1 : x + 1, y - 1 : y + 1));ImageResult(x - 1, y - 1) = abs(sum(sum(times(Part,SobelOperatorsX)))) + abs(sum(sum(times(Part,SobelOperatorsY))));end end figure(1),imshow(ImageResult, []); figure(2),imshow(ImageDataGray, []);
效果图:
转载于:https://www.cnblogs.com/tcysky/p/5906769.html
使用一阶微分对图像锐化相关推荐
- 数字图像处理:(2)一阶微分和二阶微分在数字图像处理中的应用
1.微分定义 2.微分性质 微分是对函数局部变化率的一种表示. 在图像处理中有基于一阶微分和二阶微分的锐化空间滤波器(图像锐化是增强图像的突变部分),其实一阶微分和二阶微分算子都可以得到图像的边缘,只 ...
- java图像处理之拉普拉斯锐化和一阶微分梯度锐化
拉普拉斯是使用二阶微分锐化图像,以3*3滤波器中心像素与上下左右像素计算差值,计算公式为: 一阶微分梯度锐化,以3*3滤波器中心像素上方三个像素之和减去下方三个像素之和的绝对值,与左边三个像素减去右边 ...
- python 拉普拉斯锐化_(二十四)用二阶微分(拉普拉斯算子)实现图像锐化
时间为友,记录点滴. 我们已经了解过了梯度(一阶微分)的作用,那么为什么要引入二阶微分呢?二阶微分的作用是什么? 还是看图说话: 很明显,一阶微分已经可以把轮廓辨识出来,但是,对于变化较缓的地方,一阶 ...
- 数字图像处理学习笔记4:图像增强之空间滤波2(一阶微分锐化滤波(梯度),二阶微分锐化(拉普拉斯),非锐化掩蔽)
文章目录 前言 一.一阶微分和二阶微分的定义 二.一阶微分锐化滤波:梯度 1.梯度 2.sobel算子及MATLAB代码 二.二阶微分锐化滤波:拉普拉斯算子 1.拉普拉斯算子 2.拉普拉斯算子MATL ...
- matlab拉普拉斯算子边缘提取_(二十四)用二阶微分(拉普拉斯算子)实现图像锐化...
时间为友,记录点滴. 我们已经了解过了梯度(一阶微分)的作用,那么为什么要引入二阶微分呢? 二阶微分的作用是什么? 还是看图说话: 很明显,一阶微分已经可以把轮廓辨识出来,但是,对于变化较缓的地方,一 ...
- 基于一阶微分的锐化滤波器---梯度算子(常用于工业检测,产品缺陷检测)
文章目录 前言 一.常用的非线性锐化滤波器 二.图像能够进行微分的要求 三.基于一阶微分的锐化滤波器---梯度算子(常用于工业检测,产品缺陷检测) 四.如何求解梯度幅值 五.代码 总结 前言 非线性滤 ...
- Python 计算机视觉(十)—— OpenCV 图像锐化及边缘检测
参考的一些文章以及论文我都会给大家分享出来 -- 链接就贴在原文,论文我上传到资源中去,大家可以免费下载学习,如果当天资源区找不到论文,那就等等,可能正在审核,审核完后就可以下载了.大家一起学习,一起 ...
- [Python图像处理] 四十二.Python图像锐化及边缘检测万字详解(Roberts、Prewitt、Sobel、Laplacian、Canny、LOG)
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- 【OpenCV 例程200篇】65. 图像锐化——Scharr 算子
[OpenCV 例程200篇]65. 图像锐化--Scharr 算子 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 ...
最新文章
- autosar中com模块_详细介绍AUTOSAR各个模块作用PART1(OS,SYS)
- linux shell中 if else以及大于、小于、等于逻辑表达式介绍
- qt中label画圆代表指示灯_【Qt编程】基于QWT的曲线绘制及图例显示操作——有样点的实现功能...
- 人工智能AI、机器学习和深度学习之间的区别是什么?
- apache mysql php实现最大负载的方法_如何架设高性能nginx+php+mysql搭配的服务器,解决高并发问题...
- IDEA Maven创建多个Module相互依赖
- bzoj4998: 星球联盟
- mysql查询不确定的信息_mysql-非常复杂的查询,不确定是否可行.涉及...
- 计算机网络基础知识 帮助学习网络管理的初学者快速了解网络管理的初步结构知识...
- RHEL6入门系列之三十一,管理计划任务
- android怎样降版本,Android7.0 APP降级方法
- 【数据结构实验】队列的应用
- 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音)
- yaml 变量引用_yaml语法简介
- Python学习笔记之疑问 1:def 是什么意思
- 《深入理解计算机系统》Lab2-Bomblab
- HTML+CSS+JavaScript实现网页广告
- 解决phpmyadmin 访问卡慢等问题
- 1.20e 的maphack
- 使用ffmpeg用图片批量合成抖音卡点短视频