Matlab:单幅图象的暗原色先验去雾改进算法,能够很好地改进天空或明亮部分色彩失真问题

目录

输出结果

实现代码

代码下载


输出结果

实现代码

%单幅图象的暗原色先验去雾改进算法,能够很好地改进天空或明亮部分色彩失真问题,matlab代码注解详细,能很好地帮助理解算法过程。
clc;
clear all;
img_name='jiedao.jpg';
% 原始图像
I=double(imread(img_name))/255;
% 获取图像大小
[h,w,c]=size(I);
win_size = 7;
img_size=w*h;
figure, imshow(I);
win_dark=ones(h,w);
%计算分块darkchannelfor j=1+win_size:w-win_sizefor i=win_size+1:h-win_sizem_pos_min = min(I(i,j,:));for n=j-win_size:j+win_sizefor m=i-win_size:i+win_sizeif(win_dark(m,n)>m_pos_min)win_dark(m,n)=m_pos_min;endendendendend%选定精确dark value坐标
% win_b = zeros(img_size,1);figure, imshow(win_dark);win_t=1-0.95*win_dark;win_b=zeros(img_size,1);
for ci=1:hfor cj=1:wif(rem(ci-8,15)<1)if(rem(cj-8,15)<1)win_b(ci*w+cj)=win_t(ci*w+cj);endendend
end%显示分块darkchannel
%figure, imshow(win_dark);
neb_size = 9;
win_size = 1;
epsilon = 0.000001;
%指定矩阵形状
indsM=reshape(1:img_size,h,w);%创建稀疏矩阵D=spdiags(win_b(:),0,img_size,img_size);lambda=1;x=(A+lambda*D)\(lambda*(win_b(:).*win_b(:)));%去掉0-1范围以外的数alpha=max(min(reshape(x,h,w),1),0);figure, imshow(alpha);
% **************************************************
%     自动获取大气光步骤,A为最终大气光的值
% **************************************************
range=ceil(img_size*0.1);%取暗原色中最亮的%1的点数
radi_pro=zeros(range,1); %用于记录最亮点内对应图片点象素的三个通道的颜色强度for s=1:range[a,b]=max(win_dark);  [c,d]=max(a);b=b(d);m=sparse(b,d,1,h,w);        %b,d为最亮值的坐标win_dark=win_dark-c.*m;     %消去选出的最大值radi_pro(s)=sum(I(b,d,:));  %最大值对应象素三通道求和end
A=max(radi_pro)/3;%大气光的值
% **************************************************
%  算法改进步骤,可修正天空透射率以减小明亮部分的失真率
% **************************************************
inten=zeros(h,w);for m=1:hfor n=1:winten(m,n)=mean(I(m,n,:));endend
k=70;
k=zeros(h,w)+k/255; %容差
% A=220/255;
cha=abs(inten-A);   %差限
alpha=min(max(k./cha,1).*max(alpha,0.1),1); %算法改进关键部分
figure,imshow(alpha);
% ***************************************************
alpha=repmat(alpha,[1,1,3]);
dehaze=(I-A)./alpha+A;
figure, imshow(dehaze);

代码下载

源代码下载地址:Matlab:单幅图象的暗原色先验去雾改进算法

Matlab:单幅图象的暗原色先验去雾改进算法,能够很好地改进天空或明亮部分色彩失真问题相关推荐

  1. 图像去雾算法_Matlab:单幅图象的暗原色先验去雾改进算法,能够很好地改进天空或明亮部分色彩失真问题...

    Matlab:单幅图象的暗原色先验去雾改进算法,能够很好地改进天空或明亮部分色彩失真问题 目录 输出结果 实现代码 代码下载 输出结果 ​ 实现代码 %单幅图象的暗原色先验去雾改进算法,能够很好地改进 ...

  2. MATLAB暗原色先验去雾算法的一些认识

    1.课题介绍 本文首先简单介绍基于暗原色先验去雾算法,然后总结出各变量的求解,最后利用已知程序检验算法的效果. 引言:在雾天时,由于空气中大量悬浮粒子的散射和吸收作用,使得光学成像对比度降低,颜色偏灰 ...

  3. 暗通道先验去雾算法介绍及其几何意义的解释过程

    何恺明的暗通道先验(dark channel prior)去雾算法是CV界去雾领域很有名的算法,关于该算法的论文"Single Image Haze Removal Using Dark C ...

  4. 暗通道先验去雾实现过程分析

    经典去雾算法-何凯明09年提出暗通道先验去雾(Single Image Haze Removal Using Dark Channel Prior) 暗通道去雾公式:I(x) = f(x)*t(x) ...

  5. 基于导向滤波的暗通道先验去雾算法(Python,可直接运行)

    基于导向滤波的暗通道先验去雾算法(Python语言,可直接运行) 1 编译环境 2 原理介绍 2.1 暗通道先验 2.1.1 暗通道先验理论与去雾模型 2.1.2 处理步骤 2.2 导向滤波求t(x) ...

  6. 图像去雾算法--暗通道先验去雾算法

    图像去雾: 在雾天拍摄的图像容易受雾或霾的影响,导致图片细节模糊.对比度低以至于丢失图像重要信息,为解决此类问题图像去雾算法应运而生.图像去雾算法是以满足特定场景需求.突出图片细节并增强图片质量为目的 ...

  7. [Python图像识别] 四十六.图像预处理之图像去雾详解(ACE算法和暗通道先验去雾算法)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  8. 从暗通道先验去雾到海底图像修复-三维重建辅助计算摄影

    点击上方"小白学视觉",选择加"星标"或"置顶"重磅干货,第一时间送达 一. Sea Thru:海底图像修复 我想很多朋友一定看过海底的各种 ...

  9. 50. 从暗通道先验去雾到海底图像修复-三维重建辅助计算摄影

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...

最新文章

  1. ubuntu18.04.1内核升级至5.0.0-25版本
  2. index 4 is out of bounds for dimension 1 with size 4
  3. nowcoder 提高组模拟赛 选择题 解题报告
  4. 你必须足够强大,这个世界才会更加公平
  5. 小沙的步伐(枚举+暴力)
  6. 理解WidowManager
  7. java 9 api_Java9 Process API
  8. java编程剪刀石头布_Java实现的剪刀石头布游戏示例
  9. 如何去掉word中的回车符??
  10. Element UI 极简教程(1)
  11. c语言 模拟memcmp
  12. 优客在线大学计算机基础答案,优课在线大学计算机基础答案.pdf
  13. 大学生php实训总结_php实训报告心得体会
  14. 天猫精灵方糖AI智能音箱拆解报告
  15. AI_综述----图像分割综述
  16. URL采集器-关键词采集
  17. DevOps团队绩效考核重点
  18. 摄像头之自动驾驶中的应用
  19. Unity特效学习笔记——子弹
  20. amd linux raid,组建RAID0磁盘阵列之AMD篇

热门文章

  1. LCD 进入休眠的操作解决方式
  2. 手把手教你写一个Java的orm框架(4)
  3. vue自定义指令截取图片中心显示
  4. 数据库视频总结一(概述)
  5. Vim文件管理器NERD tree
  6. 听说你,对薪酬待遇不太满意。。。
  7. 从公司发展看技术人才需求
  8. Linux进程状态解析 之 R、S、D、T、Z、X (主要有三个状态)
  9. 【看图识算法】这是你见过最简单的 “算法说明书”
  10. SpringAOP静态代理和动态代理