clear all

rgb=imread('g3.jpg');%需要处理的图片

m=size(rgb,1);

n=size(rgb,2);

for k=0:255

rr0(k+1)=length(find(rgb(:,:,1)==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置

end

figure,bar(0:255,rr0,'g') %绘制直方图

title('原图像直方图')

for i=1:m

for j=1:n

rr(i,j)=logm(double(rgb(i,j,1))+eps);

gg(i,j)=logm(double(rgb(i,j,2))+eps);

bb(i,j)=logm(double(rgb(i,j,3))+eps);

end

end

rr=rr/max(max(rr(:)));

gg=gg/max(max(gg(:)));

bb=bb/max(max(bb(:)));

rrr= retinex_frankle_mccann(rr, 8);

ggg= retinex_frankle_mccann(gg, 8);

bbb= retinex_frankle_mccann(bb, 8);

rgg=(rrr.*ggg.*bbb).^(1/3);

for i=1:m

for j=1:n

rrr(i,j)=round(exp(rrr(i,j)*5.54));

ggg(i,j)=round(exp(ggg(i,j)*5.54));

bbb(i,j)=round(exp(bbb(i,j)*5.54));

end

end

rgb=cat(3,uint8(rrr),uint8(ggg),uint8(bbb));

rgb=max(min(rgb,255),0);

for k=0:255

rr0(k+1)=length(find(rgb(:,:,1)==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置

end

figure,bar(0:255,rr0,'g') %绘制直方图

title('原图像直方图')

sz=size(rgb);

m=sz(1,1);

n=sz(1,2);

rr=rgb(:,:,1);

gg=rgb(:,:,2);

bb=rgb(:,:,3);

rr0=find2(rr)/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置

rr1(1,1)=rr0(1,1);

for k=2:256

rr1(1,k)=rr1(1,k-1)+rr0(1,k);

end

S2=round((rr1*255)+0.5); %将Sk归到相近级的灰度

rrr=rr;

ggg=gg;

bbb=bb;

for i=0:255

rrr(find(rr==i))=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素

ggg(find(gg==i))=S2(i+1);

bbb(find(bb==i))=S2(i+1);

end

rgb1=cat(3,rrr,ggg,bbb);

rgb1=max(min(rgb1,255),0);

for k=0:255

rr0(k+1)=length(find(rgb1(:,:,1)==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置

end

figure,bar(0:255,rr0,'g') %绘制直方图

title('原图像直方图')

figure,imshow(rgb1)

function Retinex = retinex_frankle_mccann(L, nIterations)

global RR IP OP NP Maximum

RR = L;

Maximum = max(L(:)); % maximum color value in the image

[nrows, ncols] = size(L);

shift = 2^(fix(log2(min(nrows, ncols)))-1); % initial shift

OP = Maximum*ones(nrows, ncols); % initialize Old Product

while (abs(shift) >= 1)

for i = 1:nIterations

CompareWith(0, shift); % horizontal step

CompareWith(shift, 0); % vertical step

end

shift = -shift/2;

直方图均衡化算法 matlab,matlab程序_retinex_frankle_mccann+直方图均衡化_去雾算法相关推荐

  1. 基于MATLAB改进暗通道先验的图像去雾算法

    基于MATLAB改进暗通道先验的图像去雾算法 摘要:暗通道先验去雾算法求得的的透射率比较精细,去雾效果优于大多数去雾算法.然而在暗通道求取过程中,最小值滤波的处理会使得暗色向外扩张,导致透射率扩张变大 ...

  2. 基于MATLAB的图像去雾GUI系统(集成4种去雾算法)

    00 目录 应用背景 去雾算法理论 MATLAB程序实现 源码获取 01 应用背景 由于大气中存在灰尘.烟雾.薄雾和其他漂浮颗粒物,因此大气中拍摄的图像通常会出现颜色失真.模糊.对比度低等问题,而模糊 ...

  3. 双边滤波去雾matlab,基于双边滤波的去雾算法.doc

    基于双边滤波的去雾算法 中图法分类号:TP391.41 文献标识码:A 文章编号:1006-8961(2013) - - 论文引用格式: 基于双边滤波的图像去雾 王一帆1 ,尹传历2,黄义明1 , 王 ...

  4. 综述:视频和图像去雾算法以及相关的图像恢复和增强研究

    综述:视频和图像去雾算法以及相关的图像恢复和增强研究 翻译自IEEE的一篇文章<Review of Video and Image Defogging Algorithms and Relate ...

  5. 单幅图像去雾算法研究综述

    来源 <计算机工程与应用>北大核心期刊,CSCD数据库. 影响因子:2.348 简介 图像去雾算法是以满足特定场景需求,突出图片细节并增强图片质量为目的的图像分析与处理方法.在雾霾天气下, ...

  6. 【老生谈算法】matlab实现视频图像增强和去雾算法——去雾算法

    matlab视频图像增强和去雾算法 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]视频图像增强和去雾算法matlab实现.d ...

  7. matlab去雾算法论文,基于matlab的图像去雾算法详细讲解与实现-附matlab实现源代码.doc...

    本文主要介绍基于Retinex理论的雾霭天气图像增强及其实现.并通过编写两个程序来实现图像的去雾功能. 1 Rentinex理论 Retinex(视网膜Retina"和大脑皮层Cortex& ...

  8. 何恺明 matlab,[论文复现]何恺明博士CVPR2009去雾算法(1)

    一.前言 近期打算研读一下何博士第一篇文章,复现其论文算法,主要参考的博文有: [1] Kaiming He论文心得 https://www.cnblogs.com/molakejin/p/57088 ...

  9. 【老生谈算法】matlab实现图像去雾算法——图像去雾

    基于matlab的图像去雾算法详细讲解与实现-附matlab实现源代码 ## 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]基于mat ...

最新文章

  1. React native 项目进阶(redux, redux saga, redux logger)
  2. error C2665: “AfxMessageBox”
  3. 依赖插件版本冲突问题
  4. 第六十五期:央行万字工作论文:区块链能做什么、不能做什么?
  5. Android 兼容 Java 8 语法特性的原理分析
  6. java怎么对用户做自定义模版打印_Printing tools 自定义模板打印的实现
  7. @Autowired与@Resource用法
  8. 海外资管业价格战有多疯狂?史上首个零费率基金横空出世
  9. Centos8[Linux]下载安装qq音乐,亲测可行
  10. abaqus6.14 帮助 Abaqus Example Problems Guide翻译
  11. 用python制作动态二维码
  12. 如何根据历史数据监控当前数据是否异常
  13. Iterative Reweighted Least Squares(IRLS)
  14. 手机登陆 html,手机登录(登陆)路由器方法
  15. sql Sever 2012安装失败解决办法!
  16. 离线模式:Unresolved dependency: ‘com.xx.xx:xx-xx:jar:x.x.x‘
  17. SAP 特别总账标识和备选统驭科目
  18. Linux网络之curl命令详解
  19. 神经网络学习笔记3——LSTM长短期记忆网络
  20. 详解数据血缘的「整体设计」与「评价方案」

热门文章

  1. ios微信支付失败 php,iOS 微信支付疑难杂症。
  2. ActiveMQ学习笔记(21)----ActiveMQ集成Tomcat
  3. python3.6.0安装步骤
  4. Vue 中的 v-if 和 v-show 修饰符
  5. php基础语法(文件加载和错误)
  6. redis list命令操作
  7. Apache 各启动方式的差别
  8. Thread pool引起的程序连接数据库响应慢
  9. netty源码分析之一:server的启动
  10. unbuntu server (linux系统)下面安装 lamp