MATLAB中图像的线性变换

MATLAB 图像线性变换是‌通过表达式y=kx+b调整每个像素的亮度与对比度‌,使灰暗/平淡的图片变清晰、变亮或变暗,便于观察或识别。

1、k=1且b=0,输出图像保持不变。

2、k>1,输出图像的‌对比度增大。

3、0<k<1,输出图像的‌对比度减小。

4、k=1且b≠0,输出图像所有像素的灰度值上移或下移,图像更暗或更亮。

5、k=-1且b=255,输出图像反转变化。

现要从当前工作目录中读取某原始彩色图像文件,进行上述5种线性变换。

可在命令窗口输入以下程序:

Matlab 复制代码
I=imread('paowuxianqumian.jpg');
k1=2;b1=0; 
k2=0.5;b2=30;
k3=1;b3=50;
k4=-1;b4=255;
I1=uint8(k1*double(I)+b1);
I1(I1>255)=255;I1(I1<0)=0;
I2= uint8(k2*double(I)+b2);
I2(I2>255)=255;I2(I2<0)=0;
I3=uint8(k3*double(I)+b3);
I3(I3>255)=255;img3(I3<0)=0;
I4=uint8(k4*double(I)+b4);
figure;
subplot(2,3,1); imshow(I); title('原始图像');
subplot(2,3,2); imshow(I1); title('k=2,b=0,对比度增大');
subplot(2,3,3); imshow(I2); title('k=0.5,b=30,对比度减小,更亮');
subplot(2,3,4); imshow(I3); title('k=1,b=50,更亮');
subplot(2,3,5); imshow(I4); title('k=-1,b=255,反转变化');

运行后得到如图1所示图形。

图1 图像的线性变换

相关推荐
charlie1145141911 小时前
Cinux —— 给物理内存建账本:bitmap 物理内存管理器
开发语言·c++·操作系统·开源项目
YUS云生1 小时前
大模型学习·第41天:LangChain进阶——提示词模板与Chain链式调用
学习·langchain·c#
ShiXZ2132 小时前
Java 8 Stream API 实用技巧详解:从入门到精通
java·开发语言
boppu2 小时前
酒店毛巾浴巾洗涤后手感评判标准
学习
冻柠檬飞冰走茶2 小时前
PTA基础编程题目集 7-27 冒泡法排序(C语言实现)
c语言·开发语言·数据结构·算法
听雨入夜2 小时前
“同声传译”还是“全文翻译”?为何HotSpot虚拟机仍要保留解释器?
开发语言·python
随风M记忆s2 小时前
GEE&Python-demo:利用Sentinel-监测北京奥林匹克森林公园年NDVI变化(附Python版)
开发语言·python·sentinel
wdfk_prog2 小时前
canopen学习笔记系列
笔记·学习
C++、Java和Python的菜鸟2 小时前
第9章 后端Web进阶(AOP)
java·开发语言·前端