图像边缘锐化,其实很简单-提取边界+处理边界
一阶导数=0,取到最值,表示函数斜率的变化
二阶导数=0,取到极值,表示函数斜率曲线的斜率的变化
闲置了好久的高数我竟然还会点,2333333333
一起看下图像边缘锐化处理吧
1.图像边缘锐化处理定义
图像锐化(image sharpening)是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰,分为空间域处理和频域处理两类。图像锐化是为了突出图像上的物体的边缘、轮廓,或某些线性目标要素的特征。这种滤波方法提高了物体边缘与周围像元之间的反差,因此也被称为边缘增强。
2.图像边缘锐化处理的问题
- 怎样提取边界
- 怎样处理边界
2.1图像边缘锐化处理必备技能包
微分运算
找到边界,进行微分运算后,在边界处的微分图变化明显,会出现阶跃,然而其他部分变化缓慢。
梯度锐化
可以增强边缘,从而使边缘更加突出,使边界更加清晰。
3.微分运算
我们想要找到图像某个实物的边缘,就要找到图像这个实物的灰度值或颜色分量或纹理结构在某一个方向上的变化量比较大的地方。然后利用减法,计算变化量,图像实物变化量较小,边缘处变化非常大。
3.1 单向微分运算
- 纵向微分运算:当前像素减去左边像素(右列-左列)
公式:G(i,j)=f(i,j)-f(i-1,j) - 横向微分运算:当前像素减去上边像素(下列-上列)
公式:G(i,j)=f(i,j)-f(i,j-1)
3.2 双向一次微分运算
即在纵方向,又在横方向进行微分运算,同时增强水平和垂直方向的边缘
公式:G(i,j)=sqrt{[f(i,j)-f(i,j-1)]*[f(i,j)-f(i,j-1)]+[f(i,j)-f(i-1,j)]*[f(i,j)-f(i-1,j)]} 即:(纵向微分运算的平方+横向微分运算的平方)然后开方
3.3 微分运算的作用
- 相减结果反映了图像亮度变化率的大小
- 像素值保持不变的区域,相减的结果为0,即像素为黑
- 像素值变化剧烈的区域,相减后得到较大的变化率,像素灰度值差别越大,则得到的像素就越亮,图像的垂直边缘得到增强。
4.梯度锐化
常用方法:
- 直接以梯度值代替:G(i,j)=sqrt{[f(i,j)-f(i,j-1)]*[f(i,j)-f(i,j-1)]+[f(i,j)-f(i-1,j)]*[f(i,j)-f(i-1,j)]} 直接将双向微分的值代替当前像素的灰度值,但是边界可能会很暗,不是那么清晰
- 辅以门限判断:双向微分运算计算出得梯度值可能会很小,不能作为边界。所以给求出的梯度值指定阈值进行判断,如小于阈值,则不作为边界(可能是物体内部亮度不均匀产生的偏差),反之为边界。
1.利用双向微分计算梯度 G(i,j)=sqrt{[f(i,j)-f(i,j-1)]*[f(i,j)-f(i,j-1)]+[f(i,j)-f(i-1,j)]*[f(i,j)-f(i-1,j)]}
2.
边界梯度值计算出来后,可能亮度比较小,再给当前边界加上100,若大于255则取255,这样就可以使边界更加清晰
- 给边缘规定一个特定的灰度级
与辅以门限判断类似;区别就是将大于指定阈值的梯度替换成指定的值
1.利用双向微分计算梯度 G(i,j)=sqrt{[f(i,j)-f(i,j-1)]*[f(i,j)-f(i,j-1)]+[f(i,j)-f(i-1,j)]*[f(i,j)-f(i-1,j)]}
2.
La为一指定的灰度值 例 La=255 边界一最亮的灰度值展示,更加清晰
- 根据梯度二值化图像
与辅以门限判断、给边缘规定一个特定的灰度类似;就是将大于指定阈值的像素直接置白(255),反之置黑(0)
1.利用双向微分计算梯度 G(i,j)=sqrt{[f(i,j)-f(i,j-1)]*[f(i,j)-f(i,j-1)]+[f(i,j)-f(i-1,j)]*[f(i,j)-f(i-1,j)]}
2.
图像边缘锐化,其实很简单-提取边界+处理边界相关推荐
- 使用差分金字塔提取图像边缘 python实现
本文提供一种提取图像边缘的快速算法 更多提取图像边缘的方法: 最大-最小滤波器实现图像边缘提取 Prewitt滤波器和Sobel滤波器提取图像边缘 拉普拉斯滤波器提取图像边缘 差分金字塔提取图像边缘算 ...
- 利用matlab写一个简单的拉普拉斯变换提取图像边缘
可以证明,最简单的各向同性微分算子是拉普拉斯算子.一个二维图像函数 f(x,y) 的拉普拉斯算子定义为 其中,在 x 方向可近似为 同理,在 y 方向上可近似为 于是 我们得到满足以上三个公式的两个变 ...
- 利用拉普拉斯滤波器提取图像边缘,实现图像锐化
一. 拉普拉斯滤波器简介: 我们知道: 拉普拉斯算子 ↑ x方向上二阶偏导数的数值近似计算 ↑ y方向上二阶偏导数的数值近似计算 ↑ 拉普拉斯算子在平面内的数值近似 ↑ 拉普拉斯滤波器卷积核表示 ↑ ...
- 图像边缘Canny算子提取
图像边缘Canny算子提取 Blog: https://blog.csdn.net/AnimateX Email: animatex.deng@gmail.com 本次项目中我觉得最有意思的部分就是梯 ...
- matlab按图像边缘抠图_MATLAB--数字图像处理 图像锐化
一.实验名称 图像锐化 二.实验目的 1.熟悉MATLAB软件的使用. 2.掌握图像锐化的原理及数学运算. 3.于MATLAB环境下编程实现对图片锐化. 三.实验内容 利用图像基于单方向梯度算子,Ro ...
- 【第十七届智能车】智能车图像处理(2)-赛道边界的简单提取和无元素循迹
本博客使用的图像是188*120的大津法二值化图像.摄像头安装高度为25cm(离地),前瞻长度约1m. 智能车图像处理的过程就是读取输入的图像,经过处理后向控制部分输出一个偏差值,控制部分根据再这个偏 ...
- 数字图像处理(五)——Matlab实现图像的边缘锐化及各种算子的比较
实验内容 基于单方向梯度算子,Robert算子,Sobel算子,Priwiff算子,Laplacian算子,多方向模板,LOG算子编写matlab增强程序 最后,显示边缘图像和锐化增强图像,并对这些仿 ...
- 利用matlab自带函数快速提取二值图像的图像边缘 bwperim函数
clear all;close all;clc; I = imread('rice.png'); I = im2bw(I); J = bwperim(I); % 提取二值图像图像边缘 figure; ...
- Prewitt滤波器的实现,对比Prewitt滤波器和Sobel滤波器提取图像边缘的效果
一. Prewitt滤波器简介 Prewitt是一种常用的检测图像边缘的滤波器,它分为横向和纵向算子,分别用于检测纵向和横向的边缘(注意:横向形式的滤波器检测图像的纵向边缘,纵向形式的滤波器检测图像的 ...
最新文章
- 【Android】FragmentTabHost实现底部Tab菜单选项
- 解决python中import时无法识别自己写的包和模块的方法
- Linux 火狐浏览器安装Flash插入
- 前端进阶之路:初涉Less
- 【机器学习】梯度下降的Python实现
- POJ 2823-Sliding Window单调队列解题报告
- conda和pip的区别
- Phonegap在ios7上系统状态栏的问题解决
- sqlerror.java.1055,请问大佬,eclipse连接数据库出现这个错误怎么办
- 安装chrome插件
- Android Adapter中的getView缓存失效
- 性能(八)Postman汉化踩坑
- 用python做蒙特卡洛仿真算法
- 用python实现列线图绘制
- 微信分享等配置,微信授权失败讲解
- 如何将陈述句变为疑问句
- GCC 中的 aligned 和 packed 属性(关于地址对齐)
- 墙、扫村都不新奇:农村电商新升级
- 2021年6月大学英语六级翻译
- python代码少儿编程转换_数据类型转换_清华尹成python入门教程_少儿编程视频-51CTO学院...