matlab亮度平衡_MATLAB中图像的亮度变换
一,imadjust函数(改变图像的对比度)
首先有必要了解一下imadjust函数,他的基本语法是:
J = imadjust(I,[low_in high_in],[low_out high_out],gamma)
此函数将图像I中的值映像到J中的新值,就是说把low_in和high_in之间的值映像到lowout 和high_out之间的值,而low_in以下的值和low_high以上的值被剪切掉了。
注意:上述in和out的输入和输出都在0-1之间,不管图片中数据类型是8还是16,如果是8,imadjust最后会乘255,16最后会乘65535.举个例子
imadjust(f,[0.5 0.75] [0 1]);
上述语句表示:该方法能将0.5-0.75之间的灰度级扩展到01 范围,这样处理的过程可以突出我们感兴趣的亮度带
gamma是指定描述I和J中的值之间关系的曲线形状,括号里的部分,除了I不能省略之外,其他的部分都可以省略,这时候:
J = imadjust(I,[low_in high_in],[low_out high_out]) %将 I 中的强度值映射到 J 中的新值,
以使 low_in 和 high_in 之间的值映射到 low_out 到 high_out 之间的值。
再简洁一点,
J= imadjust(I,[low_in high_in]) %将 I 中的强度值映射到 J 中的新值,
以使 low_in 和 high_in 之间的值映射到 0 到 1 之间的值。
在默认情况下:
J = imadjust(I) %将灰度图像 I 中的强度值映射到 J 中的新值。
默认情况下,imadjust 对所有像素值中最低的 1% 和最高的 1% 进行饱和处理。
此运算可提高输出图像 J 的对比度。
下面我们就开始实践了,我们对具体图像执行操作:
1.读入一张文件名为mm.jpg的图片并运行,
I=imread('mm.jpg');
imshow(I)图1
2.把彩色图像转换成灰度图像并运行。
J=rgb2gray(I);
imshow(J)图二
3.调整一下图像的对比度,注意这些代码是连贯的。
K = imadjust(J,[0.3 0.7],[]);
figure
imshow(K)图三
我们也可以直接做彩色图像的对比度变换,具体如下:
RGB = imread('football.jpg');
imshow(RGB)
图片见图一,我们继续对彩色图像执行如下操作:
RGB2 = imadjust(RGB,[.2 .3 0; .6 .7 1],[]);
figure
imshow(RGB2)
可以看出,图像此时具有鲜明的对比度。
二,imcomplement函数(对图像进行色彩反转)
继续对图像进行处理,
E= imcomplement(J);
imshowpair(J,E,'montage')
这里我们可以看到图像的色彩比较诡异,虽然在这里把图片处理的,但是这种技术在医学成像方面有很大的应用,只有在对比度很高的情况下,我们才能清晰的看见身体的骨骼等各种组织,有助于我们发现身体的病灶,不过这种图片往往有点恐怖,所以就不在这里展示了。
三,对数和对比度拉伸变换。
对数和对比度拉伸变换是进行动态范围处理的基本工具。对数变换通过如下表达式实现:
g=c*log(1+double(f))
表达式中的c是一个常数,对数变换的一项主要主要应用是压缩动态范围。例如,傅里叶频谱(后面会讲到)的范围为[0, 10] 或更高。当傅里叶频谱显示于已线性缩放至8比特的监视器上时,高值部分占优,从而导致频谱中低亮度值的可视细节丢失。通过计算对数,10的六次方左右的动态范围会降至14,从而就更便于我们的处理。
举例如下:
G=im2uint8(mat2gray(log(1+double(I))));
imshow(G)
可以看到图像G与原图像相比,在视觉方面的改善效果是非常明显的。
三,提高图片亮度
我们利用一个程序增强上面图片的亮度:
I = imread(‘1.jpg’); %读取图片
[m,n,k] = size(I); %读取图片大小
hsv = rgb2hsv(rgb); %颜色空间转换
H = hsv(:,:,1); % 色调
S = hsv(:,:,2); % 饱和度
V = hsv(:,:,3); % 亮度
for i = 1:m %遍历每一个像素点,可以根据需要选择自己需要处理的区域
for j = 1: n
hsv(i,j,3) =1.5* hsv(i,j,3); %1.5位需要增强的倍数,可以根据图片情况动态调整
end
end
I1 = hsv2rgb(hsv); %转为RGB,进行显示
imshow(I1)
这就是增强后的效果图,也可以直接乘以一个系数,这样也可以起到亮度增强的效果:
I = imread(‘1.jpg’);
imshow( 2*I); %
感兴趣的可以关注我,会持续更新matlab相关内容,欢迎入群学习。
matlab亮度平衡_MATLAB中图像的亮度变换相关推荐
- matlab标题斜体_Matlab中下标,斜体,及希腊字母的使用方法
下面是Matlab官方列出来的Tex代码列表,包含了绝大部分的希腊字母和数学符号. Character Sequence Symbol Character Sequence Symbol Charac ...
- matlab中patch命令_matlab中图像块(patch)处理命令小结
在使用MATLAB语言实现图像处理算法时,我们常常会遇到需要对图像块(patch)进行运算的情况.受到其他语言编程习惯的影响,循环通常是不假思索的第一选择.但由于matlab是利于矩阵运算的编程语言, ...
- 比double精度更高的数据类型_MATLAB中图像的数据类型
一.几种图象的数据类型. 表中罗列了常见的数据类型及其含义: 输入图像,指定为数值标量.向量.矩阵或多维数组. 1.如果 I 是灰度或真彩色 (RGB) 图像,它可以是 uint8.uint16.do ...
- matlab ones函数_Matlab中相见恨晚的命令(持续更新)
知乎上有个"有哪些让人相见恨晚的Matlab命令"的话题,很多答主提供的命令确实很实用,为了更方便大家的学习,我就知乎上的答案和我自己想到的都综合整理成了一篇文章,把我觉得很实 ...
- matlab 离散傅里叶变换_Matlab中的傅里叶变换
两种一般的方法: 根据傅里叶变换的定义: 典型程序: t=0:1000; xt=sin(t).*exp(-0.02*t); %随时间变化的信号 (时间空间) subplot(2,1,1); pl ...
- matlab roundn函数_matlab中round函数具体用法
展开全部 round函数 函数功能:四舍五入取整62616964757a686964616fe59b9ee7ad9431333365643661. 使用方法:B = round(A) 对数组A中每个元 ...
- matlab nan 无色_MATLAB中出现NAN怎么回事
展开全部 NaN是Not-a-Number的简写,中文译为"非数",表示计算结果为不定. 关于32313133353236313431303231363533e58685e5aeb ...
- matlab seed函数_MATLAB中 STATE和SEED | 科研软件小站
两种不同的随机数算法 seed是matlab4的,matlab5及以后用的是state seed 现在也是有的, 实际上现在用的随机数是伪随机数,由一定的规则产生 比如z_{k+1}=f(z_{k}) ...
- matlab roundn函数_MATLAB中,inv,plotmax,round这些函数的功能及问法。
匿名用户 1级 2013-07-08 回答 .矩阵运算操作求矩阵的转置 (A)'求矩阵的逆 inv(A)求矩阵的模 det(A)2.数运算操作e的次方 exp(A)指数函数 exp(x) 以e为底数 ...
最新文章
- 问题总结两天来两场实习面试(中科创达、华为)
- Xamarin Android项目运行失败
- 报名 | 2019全球AI文创大赛开启项目征集!
- 51nod 最大M子段和系列
- centos tar安装mysql_centos系统通过tar.gz包安装mysql5.7.19
- Magento 获取原价格和打折价格 get Special price or Regular Price in magento
- 如何找到字符串中的最长回文子串?
- 音视频处理入门基础知识
- 基于互联网的环境影响评价数据服务平台
- 手机号测性别 微信男女检测原理解析 技术分享
- 电脑开机界面如何设置个性签名?
- 爬虫学习笔记1:爬虫基本概念
- Excel “不能在隐藏工作簿中编辑宏,请选定“取消窗口隐藏”命令以显示工作簿”
- 人保爱无忧易核版重疾险怎么样?好不好?
- 嵌入式烧写Linux内核,嵌入式linux 内核和根文件系统烧写方式简介
- 解决安装在虚拟机VMware的Ubuntu-18-04系统与主机之间的复制粘贴问题
- speedtree中文对照ppt_SpeedTree树木建模入门知识整理
- 企业服务已经火了5年了,你们想过没,到底啥叫企业服务
- C语言无符号双字节乘法,华为OJ机试标题:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)...
- 【毕业设计】基于单片机的家庭智能监控系统 - 物联网 stm32 嵌入式
热门文章
- Python 在 Windows 下利用 face_recognition 和 OpenCV 实现人脸识别
- win10用android手柄游戏手柄,大白菜Win10系统告诉你如何在电脑中使用游戏手柄
- PS 图像调整算法——色调分离
- ZT 互联网——降级论
- python面试宝典之数据库
- 英特尔傲腾憋大招,将与Sapphire Rapids至强相伴而来
- 淋雨量matlab,人在雨中行走的淋雨量讨论
- 计算机毕业设计之java+ssm基于web的智能卤菜销售平台
- 抖音新锐发布:瞄准这届看脸的年轻人,找到唤醒“少年感”的密码
- 迷宫问题(八方向)c++