Matlab图像处理基础入门 - 亮度/对比度调整实战

1. 亮度调整原理

核心概念
  • 亮度定义:图像整体明暗程度的量化指标
Matlab 复制代码
% 读取图像
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函数

Matlab 复制代码
% 线性调整亮度(参数范围[0.5 1]表示提升亮度)
bright_img = imadjust(img, [0 1], [0.5 1]);

2. 对比度调整原理

核心概念
  • 对比度定义:图像中明暗区域最亮的白与最暗的黑之间的差异程度
Matlab实现方法

方法1:线性变换公式

Matlab 复制代码
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智能调整

Matlab 复制代码
% 自动对比度调整(拉伸到全动态范围)
contrast_img = imadjust(img, stretchlim(img), []);

3. 交互式调整工具开发

GUI实现方案
Matlab 复制代码
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
相关推荐
CoovallyAIHub1 分钟前
超越“识别”:下一代机器视觉如何破解具身智能落地难题?
深度学习·算法·计算机视觉
Jump 不二4 分钟前
百度 PaddleOCR 3.0 深度测评:与 MinerU 的复杂表格识别对决
人工智能·深度学习·百度·ocr
用户5191495848455 分钟前
Flutter应用设置插件 - 轻松打开iOS和Android系统设置
人工智能·aigc
仰泳的熊猫8 分钟前
LeetCode:207. 课程表
数据结构·c++·算法·leetcode
liu****15 分钟前
19.map和set的封装
开发语言·数据结构·c++·算法
孤廖16 分钟前
C++ 模板再升级:非类型参数、特化技巧(含全特化与偏特化)、分离编译破解
linux·服务器·开发语言·c++·人工智能·后端·深度学习
水冗水孚16 分钟前
双指针算法在实际开发中的具体应用之代码Review文章字符串的片段分割
算法·leetcode
DuHz16 分钟前
用于汽车雷达应用的步进频率PMCW波形——论文阅读
论文阅读·算法·汽车·信息与通信·信号处理·毫米波雷达
润 下17 分钟前
C语言——回调函数的典型示例(分析详解)
c语言·开发语言·人工智能·经验分享·笔记·程序人生