首页/文章/ 详情

matlab实现图片亮度的变化

3年前浏览3973

image.png

            对于摄影爱好者来说图片后期修理是必备技能。本期过冷水就和大家分享一点点简单的使用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作用是调节权值。

依据刚刚三行代码你就可以实现以下操作

2.jpg

untitled.jpg

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);


线性空间滤波器

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

图片

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

图片

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


untitled2.jpg

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

精品回顾>>>>>>

matlab绘制农夫过河动态图

用matlab实现复杂累计求和的展开(程序分享)

Matlab 做重要性抽样 含代码

MATLAB/ADAMS求解动力学

Simulink电力电子技术建模和仿真

微信图片_20210415161543.jpg

理论科普代码&命令MATLAB
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-04-20
最近编辑:3年前
过冷水
博士 | 讲师 讨论号:927550334
获赞 359粉丝 184文章 107课程 11
点赞
收藏
作者推荐

¥5 5.0
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈