对于摄影爱好者来说图片后期修理是必备技能。本期过冷水就和大家分享一点点简单的使用matlab来修理图片,虽然你不会Ps的呢?
计算机储存图像信息,用到的是一个矩阵。
对于黑白图像来说,是一个二维矩阵。矩阵里面值的大小是0-256之间的unit8格式数字。
对于彩色图像,存储时用到的是RGB三原色。也就是用这三种颜色组合来显示这个彩色图像
二值图像,这是最简单的二维矩阵构成的图像,仅仅有0和1构成,每个像素只有两种可能性:黑(0)和白(1)。这是绝对的“黑白分明”的图像。比较适合文字,线条图的扫描和储存。
索引图像:索引图由两部分构成,数据矩阵和彩色映射矩阵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('2.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);
线性空间滤波器
空间滤波器可以去掉图像的噪声,处理被污染的图像,比较常见的是拉普拉斯滤波器,使用拉普拉斯滤波器增强图像的基本公式如下
其中倒三角表示拉普拉斯算子,比较复杂,这里只介绍它的计算过程,
在矩阵中进行的就是这样的运算。下面举一个例子,用滤波器对模糊图像进行修复。
f=imread('6.jpg'); h1=fspecial('laplacian',0); g1=f-imfilter(f,h1); h2=[1 1 1; 1 -8 1; 1 1 1]; g2=f-imfilter(f,h2); subplot(1,3,1),imshow(f) ; subplot(1,3,2),imshow(g1) ; subplot(1,3,3),imshow(g2) ;
原创文章,作者过冷水,未经授权,禁止私自转载,转载请联系作者,如果您希望加入Matlab仿真秀官方交流群和资料下载可加群:927550334