1. 亮度调整原理
核心概念
-
亮度定义:图像整体明暗程度的量化指标
% 读取图像
img = imread('cameraman.tif');
% 设置亮度增量
beta = 50;
% 执行亮度调整(限制在0-255范围)
bright_img = uint8(double(img) + beta);
bright_img(bright_img > 255) = 255;
bright_img(bright_img < 0) = 0;
figure
imshow(img)
title('原始图片')
figure
imshow(bright_img,[])
title('亮度增加图片')
方法2:使用imadjust
函数
% 线性调整亮度(参数范围[0.5 1]表示提升亮度)
bright_img = imadjust(img, [0 1], [0.5 1]);
2. 对比度调整原理
核心概念
-
对比度定义:图像中明暗区域最亮的白与最暗的黑之间的差异程度
Matlab实现方法
方法1:线性变换公式
alpha = 1.5; % 对比度增强系数
beta = -30; % 亮度补偿
contrast_img = uint8(alpha*double(img) + beta);
contrast_img(contrast_img > 255) = 255;
contrast_img(contrast_img < 0) = 0;
方法2:使用imadjust
智能调整
% 自动对比度调整(拉伸到全动态范围)
contrast_img = imadjust(img, stretchlim(img), []);
3. 交互式调整工具开发
GUI实现方案
function interactive_adjustment()fig = figure('Name','亮度/对比度实时调节器');img = imread('peppers.png');% 创建滑动条uicontrol('Style','slider','Position',[20 20 200 20],...'Min',-100,'Max',100,'Value',0,'Tag','beta_slider');uicontrol('Style','slider','Position',[20 50 200 20],...'Min',0.5,'Max',2,'Value',1,'Tag','alpha_slider');% 实时更新函数addlistener(findobj('Tag','beta_slider'),'ContinuousValueChange',@update);addlistener(findobj('Tag','alpha_slider'),'ContinuousValueChange',@update);function update(~,~)beta = get(findobj('Tag','beta_slider'),'Value');alpha = get(findobj('Tag','alpha_slider'),'Value');adjusted_img = uint8(alpha*double(img) + beta);imshow(adjusted_img);title(['α=',num2str(alpha),' β=',num2str(beta)]);end
end