Matlab采用梯度算子、拉普拉斯算子、Sobel算子及Prewitt算子对图像进行锐化

文章目录

  • Matlab采用梯度算子、拉普拉斯算子、Sobel算子及Prewitt算子对图像进行锐化
    • 梯度算子
    • 拉普拉斯算子
    • Robel算子
    • Prewitt算子
    • 整体程序:
    • 结果显示:

梯度算子

设图像为f(x,y), 定义为f(x,y)在点(x,y)的梯度矢量为G[f(x,y)]:

性质:
1)梯度的方向是在f(x,y)的最大变化率方向上
2)梯度的幅度用G[f(x,y)]表示:

梯度
对于数字图像:

简化为:

Roberts梯度(交叉梯度)
对于数字图像:

简化为:

拉普拉斯算子

拉普拉斯算子:

线性、各向同性(旋转不变)

对于数字图像f(i,j),其一阶导数:

二阶偏导数为:

拉普拉斯算子模板表示


注意:
1)有时g(x,y)输出小或为负
2)有时g(x,y)的增强可能超出范围,需要变回0~L-1尺度中

Robel算子

基本思想
以待增强图像的任意像素(i,j)为中心,截取一个3X3的像素窗口,先分别计算窗口中像素在x,y方向的梯度:


增强后(i,j)点的亮度:

可简化为:

优点
1)由于引入了加权平均,所以对图像中的随机噪声具有一定的平滑作用
2)由于采用间隔两行或两列的查分,边缘两侧的像素得到增强,锐化图像的边缘显得粗而亮
S_x,S_y可用卷积模板来实现:


可见:其重点放在接近于模板中心的像素点

Prewitt算子

基本思想
与Sobel算子相同,方程的形式相同,但其中系数不同:



可见:与Sobel算子不同,其重点没有放在接近于模板中心的像素点

整体程序:

clc;
clear all;
img = imread('F:\1.jpg');
img = rgb2gray(img);
subplot(2,3,1);
imshow(img);
title('原始图像');
[m,n] = size(img);
T = 20;%Roberts算子
imgr = zeros(m,n);
for i=2:m-1for j=2:n-1imgr(i,j)= abs(img(i,j)-img(i+1,j+1)) + abs(img(i+1,j)-img(i,j+1));if imgr(i,j)<Timgr(i,j) = 0;elseimgr(i,j) = 255;endend
end
subplot(2,3,2);
imshow(imgr);
title('Roberts算子图像');%Laplace算子
imgl = zeros(m,n);
for i=2:m-1for j=2:n-1imgl(i,j)= abs(img(i+1,j)+img(i-1,j)+img(i,j+1)+img(i,j-1)-4*img(i,j));if imgl(i,j)<Timgl(i,j) = 0;elseimgl(i,j) = 255;endend
end
subplot(2,3,3);
imshow(imgl);
title('Laplace算子图像');%Sobel算子
imgs = zeros(m,n);
for i=2:m-1for j=2:n-1imgs(i,j)= abs(img(i-1,j+1)+2*img(i,j+1)+img(i+1,j+1)-img(i-1,j-1)-2*img(i,j-1)-img(i+1,j-1)) + abs(img(i+1,j-1)+2*img(i+1,j)+img(i+1,j+1)-img(i-1,j-1)-2*img(i-1,j)-img(i-1,j+1));if imgs(i,j)<Timgs(i,j) = 0;elseimgs(i,j) = 255;endend
end
subplot(2,3,4);
imshow(imgs);
title('Sobel算子图像');%Prewitt算子
imgp = zeros(m,n);
for i=2:m-1for j=2:n-1imgp(i,j)= abs(img(i-1,j+1)+img(i,j+1)+img(i+1,j+1)-img(i-1,j-1)-img(i,j-1)-img(i+1,j-1)) + abs(img(i+1,j-1)+img(i+1,j)+img(i+1,j+1)-img(i-1,j-1)-img(i-1,j)-img(i-1,j+1));if imgp(i,j)<Timgp(i,j) = 0;elseimgp(i,j) = 255;endend
end
subplot(2,3,5);
imshow(imgp);
title('Prewitt算子图像');

结果显示:

Matlab采用梯度算子、拉普拉斯算子、Sobel算子及Prewitt算子对图像进行锐化相关推荐

  1. 【数字图像处理】图像锐化:拉普拉斯算子(Laplacian)、高通滤波、Sobel算子、Isotropic算子、Prewitt算子

    图像锐化 图像锐化处理的目的是使模糊的图像变得更加清晰起来,通常针对引起图像模糊的原因而进行相应地锐化操作属于图像复原的内容.图像的模糊实质就是图像受到平均或积分运算造成的,因此可以对图像进行还原运算 ...

  2. CS131专题-3:图像梯度、边缘检测(sobel、canny等)

    目录 1 前言 2 图像梯度 2.1 梯度公式的离散形式 2.2 图像的梯度表示 2.3 图像梯度的最简单计算方法 2.4 直接应用梯度找图像边缘的问题以及解决方案 3 边缘检测 3.1 好的边缘检测 ...

  3. sobel算子 拉普拉斯算子以及散度与梯度的概念

    在ECBSR论文的代码研究中,我发现关于ECBSR提出的多分支重参数化模型中,代码用到了sobel算子与laplace算子,很难判断这两个算子是为了论文的创新点还是真的有用,这块只能等待后续的对比实验 ...

  4. 图像边缘提取——梯度算子、Roberts算子、prewitt算子、Sobel算子、Kirsch算子、LOG算子的matlab实现

    #图像边缘提取-- ##梯度算子.Roberts算子.prewitt算子.Sobel算子.Kirsch算子.LOG算子的matlab实现 matlab代码 clear; f=rgb2gray(imre ...

  5. 图像处理中的梯度、导数如何求?(Robert算子,Sobel算子,Prewitt算子,Laplace算子)

    梯度的求法是多种多样的,根据不同的处理需要选择合适的算子(模版). 1.水平垂直差分法 2.Robert 梯度算子 3.Sobel算子               垂直方向               ...

  6. 图像梯度——Sobel算子和Laplacian算子

    一.Sobel算子 1.定义 Sobel算子是一种离散的微分算子,结合了高斯平滑和微分求导运算,利用局部拆分寻找边缘,计算所得的是一个梯度的近似值. Sobel算子=|左-右|/|下-上| Schar ...

  7. 点、线和边缘检测 个人笔记(含Sobel和Laplace等算子、Marr-Hildreth和Canny实现及Hough变换)

    文章目录 1. 前言 2. 使用OpenCV 3 处理图像 笔记 2.1 傅里叶变换及相关.卷积 2.2 个人总结 2.3 相关链接 3. 点.线和边缘检测 笔记 3.1 背景知识 3.2 孤立点的检 ...

  8. 【图像处理】——Python图像分割边缘检测算法之二阶梯度算子(laplace、log、dog算子)

    目录 一.二阶算子简介 二.laplace(拉普拉斯算子) 1.什么是拉普拉斯算子 (1)连续二维函数的二阶导 (2)离散二维函数的二阶导数 2.常用算子模块及代码 3.结果 三.log算子 1.什么 ...

  9. Opencv之图像边缘检测:1.Sobel算子(cv2.Sobel)

    图像梯度计算的是图像变化的速度.对于图像的边缘部分,其灰度值变化较大,梯度值也较大:相反,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值也较小.一般情况下,图像梯度计算的是图像的边缘信息. ...

  10. Opencv(C++)笔记--Sobel算子和laplacian算子

    目录 1--Sobel算子 1-1--原理 1-2--Opencv API 1-3--代码实例 1-4--Scharr算子 1-5--扩展操作 2--laplacian算子 2-1--原理 2-2-- ...

最新文章

  1. Crawl:利用bs4和requests爬取了国内顶级某房源平台(2020年7月2日上海二手房)将近30*100多条数据并进行房价分析以及预测
  2. 在datatable中,在指定位置插入列
  3. python格式化输出之format用法
  4. linux mysql5.6 安装
  5. javascript创建DOM元素(标签script)并追加到title标签中
  6. 滴滴辟谣被美团收购;苹果提交认证 9 款新手机;VS Code 1.46 发布 | 极客头条
  7. 【新冠肺炎】SIR模型预测与数据分析之代码篇
  8. dnf mysql密码多少_DNF 台服数据库密码加密算法
  9. 逐步揭示makop.mkp勒索病毒中毒防范恢复解密
  10. doris core安装报错Makefile:158: recipe for target 'processor.o' failed make: *** [processor.o] Error 1
  11. 关于MSP430单片机程序烧写的介绍
  12. 你未来的职业规划是什么?
  13. 小熊、九阳、苏泊尔,小家电玩家们乱了阵脚?
  14. 695N开发调试总结
  15. cgroup架构及控制文件介绍
  16. 婚纱行业怎么做好有效的营销方案来打动客户?
  17. 今天给自己分享下我的心得体会
  18. shell-sed和awk
  19. 虚假可信根证书木马处理
  20. 如何借助 HealthKit 打造一款健身应用?

热门文章

  1. php微信商城 源代码下载,微信商城(B2C)独立后台版 php版 v1.0
  2. spring cloud oauth2 资源服务器配置
  3. Problem C: 车牌限行
  4. 【VBA】excel客户数据打印录入控件
  5. Windows Server 2012 R2磁盘分区
  6. 设置idea类注释模板
  7. 科赫雪花java_科赫雪花的Java递归实现
  8. 多维奇异谱分析(Multivariate Singular Spectrum Analysis,MSSA)
  9. 心率传感器MAX30102使用
  10. JAVA经典算法题目