图像的点运算——Matlab实现
一、线性点运算
定义: 线性点运算的灰度变换函数形式可以采用线性方程描述 即==> s = ar + b 的形式
分析:方程中r代表像素 点 灰度值的输入,而s代表像素 点 的输出。 a代表斜率,用于调节对比度,而b代表截距,这两个参数就能够改变从输入到输出的映射关系 。 由于成像设备以及图像记录设备的动态范围太窄等因素,会导致图像曝光不足或者曝光过度,这时可以通过点运算将灰度图像的线性范围进行拓展
- 若a=1,且b=0,则只是简单的输出图像,无其他操作。但当a=0且b≠0时,操作结果是仅使得所有像素的灰度值上移或下移,即使得整个图像变得更亮或者更暗。
- 若a>1,则输出图像的对比度增大(灰度值范围增大)。
- 若0<a<1,则输出图像的对比度降低(灰度值范围减小)。
- 若a<0,即a为负值,则图像反色,暗区域将变亮,亮区域将变暗,即点运算完成了图像求补。
- b 是一个平移项,对图像的整个灰度值进行平移,用于控制图像亮度
Matlab代码实现
%% 实验点运算,实现图像对比度的改变
clc;clear;close all; % 初始化
I=imread('eight.tif'); % 读入一幅图像
I=im2double(I); % 转换数据类型为double
subplot(231);imshow(I);title('原图');
%% 增加对比度并显示
a=2;b=-50; % 增加对比度
O=a.*I+b/255;
subplot(232);imshow(O);title('a=2;b=-50,增加对比度');
%% 降低对比度并显示
a=0.5

本文介绍了如何使用Matlab进行图像的点运算,包括线性和非线性变换。线性点运算通过调整斜率和截距改变图像对比度和亮度;非线性点运算则涉及对数和幂次变换,用于拓宽或压缩图像的灰度范围。通过实例展示了不同参数设置下的图像效果。
最低0.47元/天 解锁文章
1392





