目录

一、计算原理

二、图像灰度化函数

三、主程序

四、仿真效果

一、计算原理

二、图像灰度化函数

function[A]=myreb2gray(a)
n=size(a,3);
if n==1A=a;disp('该图像是灰度图')
elseA=rgb2gray(a); disp('该图像是彩色图')
end
end

三、主程序

clear; close all; clc
%% 图像变换灰度变换(这里是默认将彩色图像灰度化了,如果想做彩色图片,可以将第三行I=myreb2gray(I);注释即可)
I = imread('tire.tif');%读取图像
I=myreb2gray(I);%调用函数,处理图像使之灰度化
A=double(I);%将矩阵中的数,转化为双精度数,进行下面梯度的计算
%% 参数定义
[Gx,Gy]=gradient(A); % 计算梯度
G=sqrt(Gx.*Gx+Gy.*Gy);% 注意是矩阵点乘
n=size(I,1);%以下内容为构造一个和图像一样大的矩阵,写第三、四、五种锐化方法中固定灰度级
m=size(I,2);
k=size(I,3);
LG=ones(n,m,k);%如果不定义矩阵的话,可能会导致数组维度不一样
LB=ones(n,m,k);
LG=150*LG;%固定灰度级
LB=50*LB;%固定灰度级
T=7;%梯度阈值
%% 第一种图像增强
J1=G;
%% 第二种图像增强
J2=I;
K=find(G>=T);%找出梯度大于T值的G并返回K值
J2(K)=G(K);
%% 第三种图像增强
J3=I;
K=find(G>=T);%找出梯度大于T值的G并返回K值
J3(K)=LG(K);
%% 第四种图像增强
J4=I;
K=find(G<=T);%找出梯度小于T值的G并返回K值
J4(K)=LG(K);%LG为固定的灰度级
%% 第五种图像增强
J5=I;
K=find(G<=T);%找出梯度小于T值的G并返回K值
J5(K)=LB(K);%LB为一固定灰度级
Q=find(G>=T);%找出梯度大于T值的G并返回Q值
J5(Q)=LG(Q);
%% 显示图形
figure,%建立图像
subplot(2,3,1),imshow(I);
title('原图像');
subplot(2,3,2),imshow(J1);
title('第一种');
subplot(2,3,3),imshow(J2);
title('第二种');
subplot(2,3,4),imshow(J3);
title('第三种');
subplot(2,3,5),imshow(J4);
title('第四种');
subplot(2,3,6),imshow(J5);
title('第五种');
%注意:在每种增强前,一定要用原始图像去赋值,如:J5=I;。如果用J5=LB;输出图片会变白

四、仿真效果

图像锐化——基于梯度算子的五种方法相关推荐

  1. OpenCV图像锐化(梯度算子Sobel)

    梯度算子 •    梯度通过一个二维列向量来定义 •    向量的模值 实践中通常称为梯度图像. • 考虑一个3x3的图像区域,z代表 灰度级,上式在点z5的f值可用 数字方式近似. • 微分滤波器 ...

  2. 基于一阶微分的锐化滤波器---梯度算子(常用于工业检测,产品缺陷检测)

    文章目录 前言 一.常用的非线性锐化滤波器 二.图像能够进行微分的要求 三.基于一阶微分的锐化滤波器---梯度算子(常用于工业检测,产品缺陷检测) 四.如何求解梯度幅值 五.代码 总结 前言 非线性滤 ...

  3. 【数字图像处理】图像直方图均衡化、空域滤波(均值滤波、中值滤波)、图像锐化(Laplace算子)、图像傅里叶变换实验

    图像直方图均衡化.空域滤波.图像锐化.图像傅里叶变换 一.图像直方图均衡化 二.图像空域滤波 1.均值滤波(滤波次数n→3) 2.中值滤波(滤波次数n→3) 3.图像锐化(Laplace算子) 三.图 ...

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

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

  5. Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能

    Python语言学习:基于python五种方法实现使用某函数名[func_01]的字符串格式('func_01')来调用该函数[func_01]执行功能 目录 问题提出 代码五种设计思路 T1方法:e ...

  6. 创建五星级评级的五种方法

    在喜欢和社交统计的世界中,评论是留下反馈的一种非常重要的方法.用户往往喜欢先了解他人的意见,然后再决定自己购买的物品,甚至是看电影看的文章,或者就餐的餐厅. 开发人员经常与审查作斗争--通常会看到难以 ...

  7. python压缩包怎么安装-详解python解压压缩包的五种方法

    这里讨论使用Python解压例如以下五种压缩文件: .gz .tar .tgz .zip .rar 简单介绍 gz: 即gzip.通常仅仅能压缩一个文件.与tar结合起来就能够实现先打包,再压缩. t ...

  8. python函数可以提高代码执行速度吗_Python代码运行速度慢?这五种方法很管用

    对于Python很多人还是比较了解的,虽然说Python有很多优势但同样具有劣势,Python最大的劣势就是运行效率慢,那么如何提高Python代码运行速度呢?这五种方法很管用. 1.PyPy:在选择 ...

  9. JavaScript 实现网页截屏五种方法

    JavaScript 实现网页截屏五种方法 最近研究了下如何利用JavaScript实现网页截屏,包括在浏览器运行的JS,以及在后台运行的nodeJs的方法.主要看了以下几个: PhantomJS P ...

最新文章

  1. VLC SDK在VS2010中的配置及简单使用举例
  2. 64岁Python之父退休失败,正式加入微软搞开源
  3. Latex(一)公式自动编号与自动引用
  4. 玩转python轻松过二级 百度网盘,玩转Python轻松过二级
  5. 并发基础篇(一): Java 并发性和多线程
  6. base64编码的学习和理解
  7. 内核中的kmalloc函数详解
  8. 如何让PictureBox背景色透明
  9. ProgressBar 类
  10. HTML5数据推送SSE原理及应用开发
  11. leetcode193. 有效电话号码 正则了解一下
  12. squid代理简单应用
  13. Pr入门系列之五:熟悉时间轴操作
  14. 主从D触发器的电路结构和工作原理
  15. 【小程序】JAVA实现从10~50中随机生成50个数,统计出现的数字及次数,输出出现最多的次数及对应的数字,按数字升序排列。
  16. 华为手机2.3亿出货量背后,一场技术+市场的胜利
  17. iOS 苹果企业账号申请流程
  18. 目标检测特殊层:Proposal层
  19. PYTHON 中的多线程
  20. Idea中maven 只从本地仓库导入jar包,取消联网下载的问题

热门文章

  1. 一个简单的例子学习 HTML 元素property和attribute的区别
  2. SAP Spartacus auth.service.ts里的user调用触发的源代码位置
  3. Jasmine里的describe,it和expect函数
  4. SAP WebClient UI界面元素ID生成的逻辑分析
  5. Settype COM_TA_MANUFAC - mapping between ERP Equipment and CRM Individual Object
  6. SAP UI5 library-dbg.js - local location
  7. 阮一峰react demo代码研究的学习笔记 - demo5 debug
  8. outlook的插件管理(Web界面)
  9. 在TCP客户端连接成功的回调函数里,无法访问到客户端套接字的明细
  10. CRM Set Type com_commercial的UI界面