基于高斯同态滤波的图像增强实现(附带MATLAB代码)

图像增强是数字图像处理中的重要技术之一,它旨在改善图像的质量和视觉效果。

高斯同态滤波是一种常用的频域滤波技术,它通过将图像的频谱进行分解和调整来增强图像的对比度和亮度。下面是使用MATLAB实现高斯同态滤波的代码:

function enhancedImage = gaussianHomomorphicFilter(image, cutoffFrequency, gammaL, gammaH)

    % 转换图像为双精度浮点型
    image = im2double(image);

    % 获取图像尺寸
    [rows, cols] = size(image);

    % 对图像进行对数变换
    imageLog = log(1 + image);

    % 应用二维傅里叶变换
    imageFFT = fft2(imageLog);

    % 创建高斯滤波器
    filter = zeros(rows, cols);
    centerRow = floor(rows / 2) + 1;
    centerCol = floor(cols / 2) + 1;

    % 根据截止频率和参数gammaL、gammaH计算滤波器
    for i = 1:rows
        for j = 1:cols
            distance = sqrt((i - centerRow)^2 + (j - centerCol)^2);
            filter(i, j) = (gammaH - gammaL) * (1 - exp(-cutoffFrequency * distance^2)) + gammaL;
        end
    end

    % 应用滤波器
    filteredImageFFT = imageFFT .* filter;

    % 对滤波结果进行反傅里叶变换
    filteredImage = real(ifft2(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员杨弋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值