前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matlab图像(亮度变换与线性滤波)

matlab图像(亮度变换与线性滤波)

作者头像
巴山学长
发布2019-07-15 16:05:18
1.1K0
发布2019-07-15 16:05:18
举报
文章被收录于专栏:巴山学长巴山学长

如今,很多人都喜欢摄影。当然也有很多人喜欢对图像进行处理,使图像具有别样的味道。其中用到了很多知识,那现在我就向大家介绍一下简单的图像数字处理。

众所周知,我们的计算机储存图像信息,用到的是一个矩阵。

1:对于黑白图像来说,这是一个二维矩阵。矩阵里面值的大小是0-256之间的unit8格式数字。

2:对于彩色图像,存储时用到的是RGB三原色。也就是用这三种颜色组合来显示这个彩色图像

3:二值图像,这是最简单的二维矩阵构成的图像,仅仅有0和1构成,每个像素只有两种可能性:黑(0)和白(1)。这是绝对的“黑白分明”的图像。比较适合文字,线条图的扫描和储存。

4:索引图像:索引图由两部分构成,数据矩阵和彩色映射矩阵map。由于索引矩阵平时用到的不多,在此不多做介绍。

一:亮度变换

1:亮度转换的意思是直接对图像像素进行处理。用到的是一个非常简单的公式:

g(x,y)=T{f(x,y)};

其中f(x,y)代表的是原图像,x,y分别代表行数和列数。T代表队图像进行处理的操作符。代表的是一个简单的映射关系。

g=imadjust(f,[low_in,hing_in],[low_out,high_out],gamma)

这是专用于这项工作的函数,其中的亮度映射关系如下,

[low_in,high_in]----> [low_out,high_out]。gamma作用是调节权值。

下面我给大家举一个例子,下面就是代码和实现效果

代码语言:javascript
复制
warning off
f=imread('tiger.jpg');
g1=imadjust(f,[0;0.2],[1;0]);
subplot(2,2,1);
imshow(g1);
g2=imadjust(f,[0;1],[1;0]);
subplot(2,2,2);
imshow(g2);
g3=imadjust(f,[0;1],[0.5;0]);
subplot(2,2,3);
imshow(g3);
g4=imadjust(f,[0;0.3],[1;0.4]);
subplot(2,2,4);
imshow(g4);

2:线性空间滤波器

空间滤波器可以去掉图像的噪声,处理被污染的图像,比较常见的是拉普拉斯滤波器,使用拉普拉斯滤波器增强图像的基本公式如下

其中倒三角表示拉普拉斯算子,比较复杂,这里只介绍它的计算过程,

在矩阵中进行的就是这样的运算。下面举一个例子,用滤波器对模糊图像进行修复。

代码如下

代码语言:javascript
复制
f=imread('123.jpg'); %读取原图像
h1=fspecial('laplacian',0); %式(13.3)的滤波器,等价于式(13.5)中参数为0
g1=f-imfilter(f,h1); %中心为-4,c=-1,即从原图像中减去拉普拉斯算子处理的结果
h2=[1 1 1; 1 -8 1; 1 1 1]; %式(13.4)的滤波器
g2=f-imfilter(f,h2); %中心为-8,c=-1
subplot(1,3,1),imshow(f) %显示原图像
subplot(1,3,2),imshow(g1) %显示滤波器(13.3)修复的图像
subplot(1,3,3),imshow(g2) 

3:非线性滤波器:篇幅太长了,这个下次再讲吧!


本文作者:南海一号

参考文献:数学建模算法与应用(司守奎,孙兆良)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档