基于 MATLAB 的光照不均匀图像增强

基于 MATLAB 的光照不均匀图像增强程序,结合了同态滤波和高斯高通滤波的方法。该程序通过对图像进行对数变换、傅里叶变换、滤波处理,最后通过逆变换恢复图像,从而增强光照不均匀的图像。

MATLAB 代码实现

matlab 复制代码
function enhanced_image = homomorphic_filtering(image_path)
    % 读取图像
    img = imread(image_path);
    if size(img, 3) == 3
        img = rgb2gray(img); % 转换为灰度图像
    end
    img = im2double(img); % 转换为双精度

    % 参数设置
    rL = 0.5;   % 低频增益
    rH = 2.0;   % 高频增益
    c = 1.5;    % 控制滤波器函数斜率
    d0 = 1800;  % 截止频率

    % 对数变换
    img_log = log(img + 1);

    % 傅里叶变换
    F = fft2(img_log);
    F_shifted = fftshift(F);

    % 高斯高通滤波器设计
    [rows, cols] = size(img);
    [U, V] = meshgrid(1:cols, 1:rows);
    U = U - floor(cols / 2);
    V = V - floor(rows / 2);
    D = sqrt(U.^2 + V.^2);
    H = (rH - rL) * (1 - exp(-c * (D.^2 / (d0^2)))) + rL;

    % 滤波
    G = H .* F_shifted;

    % 逆傅里叶变换
    G_shifted = ifftshift(G);
    img_filtered = ifft2(G_shifted);
    img_filtered = real(exp(img_filtered) - 1); % 指数变换

    % 显示结果
    figure;
    subplot(1, 2, 1);
    imshow(img);
    title('原始图像');
    subplot(1, 2, 2);
    imshow(img_filtered, []);
    title('增强后的图像');

    % 返回增强后的图像
    enhanced_image = img_filtered;
end

使用方法

  1. 将上述代码保存为一个 .m 文件,例如 homomorphic_filtering.m。

  2. 在 MATLAB 中调用该函数,传入图像路径作为参数。例如:

    matlab 复制代码
    enhanced_image = homomorphic_filtering('path_to_your_image.jpg');

参考代码 光照不均匀图像增强,同态滤波,MATLAB代码,高斯高通滤波 www.youwenfan.com/contentcsn/98050.html

参数调整

  • rL 和 rH:分别控制低频和高频的增益,可以根据图像的光照情况调整。
  • c:控制滤波器的斜率,影响滤波效果。
  • d0:截止频率,影响高频和低频的分界点。

通过调整这些参数,可以优化图像增强的效果,使其更适合不同的光照不均匀情况。

相关推荐
Evand J10 小时前
【PMSM例程4】PMSM电阻辨识与模型补偿EKF,MATLAB例程。附下载链接,包运行成功
开发语言·matlab·电机·ekf·卡尔曼·pmsm
slandarer10 小时前
MATLAB | 文艺复兴:万圣节使用 MATLAB 绘制黑人抬棺动画
matlab·黑人抬棺
陈嘿萌12 小时前
ACM MM 2026|告别密集交互!ProtoHGF-Net:基于原型超图的RGBT目标检测新范式
图像处理·人工智能·深度学习·目标检测·计算机视觉·学术研究与理论基础
大江东去浪淘尽千古风流人物13 小时前
【FLORA】机器人视频标注引擎解析:三模型如何产出动作指令与四类奖励信号
matlab·机器人·跨模态·遥感·图像匹配·1024程序员节·特征描述符
指针向南13 小时前
PDF 转 HTML 免费5种方法,体积0.5%到368%
图像处理·人工智能·计算机视觉·pdf
陕西亿鑫鸿物联技术有限公司15 小时前
传统安防利旧升级实战:如何基于边缘计算接入海康大华IPC构建AI分析系统?
深度学习·计算机视觉·边缘计算·物联网架构·流媒体技术
拜小白16 小时前
【论文解读】Ray-casting MLC:用几何感知光线投射做自训练房间布局估计
深度学习·计算机视觉·全景图
星夜离尘561 天前
MATLAB ADC 码流触顶诊断:命中数、缺口分段与削顶不可辨识性
开发语言·matlab
MarkHD1 天前
超分辨率与图像放大:从ESRGAN的纹理重建到UltimateSDUpscale的4K分块实战
人工智能·深度学习·计算机视觉
Evand J1 天前
【MATLAB例程】平面下,5基站对待定位点的定位。基于距离辅助下的AOA。完整代码下载链接
开发语言·matlab·平面·定位·导航·测距·aoa