如今,很多人都喜欢摄影。当然也有很多人喜欢对图像进行处理,使图像具有别样的味道。其中用到了很多知识,那现在我就向大家介绍一下简单的图像数字处理。
众所周知,我们的计算机储存图像信息,用到的是一个矩阵。
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作用是调节权值。
下面我给大家举一个例子,下面就是代码和实现效果
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:线性空间滤波器
空间滤波器可以去掉图像的噪声,处理被污染的图像,比较常见的是拉普拉斯滤波器,使用拉普拉斯滤波器增强图像的基本公式如下
其中倒三角表示拉普拉斯算子,比较复杂,这里只介绍它的计算过程,
在矩阵中进行的就是这样的运算。下面举一个例子,用滤波器对模糊图像进行修复。
代码如下
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:非线性滤波器:
由于此内容需要占太长篇幅,下次单独列出一篇再讲吧!
另外本人还开设了个人公众号:JiandaoStudio ,会在公众号内定期发布行业信息,以及各类免费代码、书籍、大师课程资源。
扫码关注本人微信公众号,有惊喜奥!公众号每天定时发送精致文章!回复关键词可获得海量各类编程开发学习资料!
例如:想获得Python入门至精通学习资料,请回复关键词Python即可。