基于同态滤波的图像去雾算法,Matlab实现

        博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188

        个人主页:Matlab_ImagePro-CSDN博客

        原则:代码均由本人编写完成,非中介,提供有偿Matlab算法代码编程服务,不从事不违反涉及学术原则的事。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        本次分享的是基于同态滤波的图像去雾算法,用matlab实现。(有疑问或者想交流细节的QQ:3249726188

        一、简述一下算法情况

        本次介绍的是基于同态滤波的图像去雾算法,算法思路比较简单,就是对分别图像R、G、B三个图层进行同态滤波处理,即可得到去雾的效果。

        二、算法流程

       同态滤波去雾算法流程步骤如下:

        1、读取原图

        2、分别提取R\G\B图层,进行同态滤波处理,并对图层进行归一化

        3、归一化后的RGB图层替换去雾前的图层,去雾完成。

        算法思路简单,话不多说,看看matlab实现效果。

        三、Matlab实现效果

        1、读取原图

        2、去雾后的图像

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

专注、专一于Matlab图像处理学习、交流、代做

QQ:3249726188

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像是一种比较复杂的图像处理技术,其目的是通过算法去除图像中的气,使得图像更加清晰、自然。以下是一种基于暗通道先验的图像算法MATLAB实现: ```matlab function [J] = defog(I, w, t0, A) % I:输入图像 % w:滤波窗口大小 % t0:最小透射率阈值 % A:大气光估计值 if size(I, 3) == 3 I = rgb2gray(I); end I = double(I) / 255; dark_channel = minfilt2(I, w, 'symmetric'); atmosphere = max(max(dark_channel)); transmission = 1 - t0 * dark_channel / atmosphere; transmission = min(max(transmission, 0), 1); J = (I - A) ./ transmission + A; J = min(max(J, 0), 1); J = uint8(J * 255); end ``` 其中,函数的输入参数包括: - I:待处理的输入图像 - w:滤波窗口大小,一般为3x3或5x5 - t0:最小透射率阈值,一般设定为0.1 - A:大气光估计值,可以通过图像中最亮的像素点来估计 函数的输出参数为处理后的图像J。 该算法的主要思想是基于图像的暗通道先验,通过估计图像的透射率和大气光来去除图像中的气。算法流程如下: 1. 对输入图像进行灰度化处理。 2. 计算图像的暗通道,即在滤波窗口内,每个像素点的最小值。 3. 根据暗通道和大气光估计值,计算图像的透射率。 4. 根据透射率和大气光估计值,去除图像中的气。 5. 对去后的图像进行像素值范围的调整,输出处理后的图像。 需要注意的是,该算法的去效果取决于大气光估计值的准确性,因此在实际应用中需要根据具体场景来选择适当的估计方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值