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
相关推荐
171320330计算机毕设编程几秒前
计算机毕业设计 基于springboot+vue的在线观鸟视频播放网站 LW PPT
java·大数据·vue.js·spring boot·算法·课程设计
frankzch9 分钟前
Claude 刷新量子电路最优:LLM 与评估器的进化循环怎么搭
人工智能·深度学习·机器学习·语言模型·量子计算
郝学胜_神的一滴10 分钟前
游戏设计:原型与开发 05:读懂动态层,理解玩家如何活在游戏世界
人工智能·程序员
用户66982954852912 分钟前
同一句话,粤语要贵 24%:我量了 236 对双语文档和 4 种写法
人工智能
阿屿17 分钟前
从零手搓 AI 伴侣:Java + 大模型 + 多模态的工程化踩坑实录
人工智能
const_qiu19 分钟前
第四章 07:4.7 本章小结
java·运维·服务器·人工智能
cubestudio21 分钟前
云原生分布式训练怎么调度才不浪费算力?CubeStudio 分布式训练与加速架构解析(CRD+Operator / gang 调度 / 亲和反亲和 / GPU 利用率 / 共享 GPU)
人工智能·云原生·gpu
老马识码22 分钟前
7541 万笔,2424 万美元:x402 真正解决了什么?
人工智能
大明二代23 分钟前
从 RAG 到有记忆的 Agent:Mastra Memory 与 PostgreSQL 实战
前端·javascript·人工智能
zhangyy042325 分钟前
agent 说"做完了",它真做完了吗:16 个任务、四种判据的一次实测
人工智能