原文:http://blog.csdn.net/sunlinyi66/article/details/39215447

基于直方图均衡化的水下图像增强(MATLAB仿真)

可以对RGB三个通道进行直方图规定化从而实现水下图像增强。此处我们使用的是直方图均衡化,通过实际仿真效果也很明显。

前段时间一直在做去雾处理。在laviewpbt博客中对去雾算法介绍的很详细,我从暗通道算法开始学习的,后来又仿真快速去雾算法,效果都还可以。然后花了两周的时间,在DM642上实现快速去雾算法的视频处理,效果比较一般,以后再写一下具体的实验效果。

我们最终的目的的是实现水下激光成像,去雾算法和水下图像处理还是有一定的差距的。前段时间也没有看水下成像的仿真,只是看了一下具体的系统设计等等。今天看到能够用三个通道分别通过直方图规定化来进行增强,而我前段时间在学习那本经典的《数字图像处理》(冈萨雷斯)做过直方图均衡化的仿真,所以直接拿过程序进行仿真。通过实际测试效果还是可以的。下面列出一些具体的测试结果:

MATLAB仿真程序:

%{

基于直方图均衡化的水下图像增强(MATLAB仿真)

对RGB三个通道分别进行均衡化处理,得到增强之后的图像

实际测试,效果明显,下面

时间:2014年9月11日23:59:01

整理:天空之恋

地点:桂电

%}

clear;

t = imread('wa5.png');

I=t(:,:,1);

[height,width] = size(I);

subplot(121);

imshow(t),title('原始图像')%显示原始图像

%对R通道进行均衡化处理,均衡化可以写一个统一的函数,直接调用

%进行像素灰度统计;

s = zeros(1,256);%统计各灰度数目,共256个灰度级

%绘制直方图

gp=zeros(1,256);

for k=0:255

gp(k+1)=length(find(I==k))/(height*width);

end

for i = 1:height

for j = 1: width

s(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一

end

end

%计算灰度分布密度

p = zeros(1,256);

for i = 1:256

p(i) = s(i) / (height * width * 1.0);

end

%计算累计直方图分布

c = zeros(1,256);

c(1) = p(1);

for i = 2:256

c(i) = c(i - 1) + p(i);

end

%累计分布取整,将其数值归一化为1~256

c = uint8(255 .* c + 0.5);

%对图像进行均衡化

for i = 1:height

for j = 1: width

Ir(i,j) = c(I(i,j)+1);

end

end

dis(:,:,1)=Ir;

%subplot(122)

%imshow(Ir)%显示均衡化后的图像

%对G通道进行均衡化处理,均衡化可以写一个统一的函数,直接调用

I=t(:,:,2);

[height,width] = size(I);

%下面使用直方图均衡化进行处理

%进行像素灰度统计;

s = zeros(1,256);%统计各灰度数目,共256个灰度级

%绘制直方图

gp=zeros(1,256);

for k=0:255

gp(k+1)=length(find(I==k))/(height*width);

end

for i = 1:height

for j = 1: width

s(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一

end

end

%计算灰度分布密度

p = zeros(1,256);

for i = 1:256

p(i) = s(i) / (height * width * 1.0);

end

%计算累计直方图分布

c = zeros(1,256);

c(1) = p(1);

for i = 2:256

c(i) = c(i - 1) + p(i);

end

%累计分布取整,将其数值归一化为1~256

c = uint8(255 .* c + 0.5);

%对图像进行均衡化

for i = 1:height

for j = 1: width

Ig(i,j) = c(I(i,j)+1);

end

end

%subplot(122)

%imshow(Ig)%显示均衡化后的图像

dis(:,:,2)=Ig;

%对B通道进行均衡化处理,均衡化可以写一个统一的函数,直接调用

I=t(:,:,3);

[height,width] = size(I);

%下面使用直方图均衡化进行处理

%进行像素灰度统计;

s = zeros(1,256);%统计各灰度数目,共256个灰度级

%绘制直方图

gp=zeros(1,256);

for k=0:255

gp(k+1)=length(find(I==k))/(height*width);

end

for i = 1:height

for j = 1: width

s(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一

end

end

%计算灰度分布密度

p = zeros(1,256);

for i = 1:256

p(i) = s(i) / (height * width * 1.0);

end

%计算累计直方图分布

c = zeros(1,256);

c(1) = p(1);

for i = 2:256

c(i) = c(i - 1) + p(i);

end

%累计分布取整,将其数值归一化为1~256

c = uint8(255 .* c + 0.5);

%对图像进行均衡化

for i = 1:height

for j = 1: width

Ib(i,j) = c(I(i,j)+1);

end

end

dis(:,:,3)=Ib;

%subplot(122)

%imshow(Ib)%显示均衡化后的图像

subplot(122);

imshow(dis),title('处理之后的图像')%显示均衡化后的图像

基于直方图均衡化的水下激光图像处理(MATLAB仿真)相关推荐

  1. 基于直方图均衡化的激光水下图像处理

    采用直方图进行水下图像处理,感觉对我搜到的这几个图片效果可以,最近看了一些使用修正的暗通道进行水下图像处理的,但是我没有弄出来效果.我感觉即使使用暗通道进行处理,那么每个通过处理的结果应该也朝直方图均 ...

  2. matlab ssgs工具箱,基于PI控制方式的1A开关电源MATLAB仿真研究

    基于 PI 控制方式的 1A 开关电源 MATLAB 仿真研究学院:电气与光电工程学院专业:电气工程及其自动化班级:基于 PI 控制方式的 1A 开关电源 MATLAB 仿真研究0目录0 绪论 --- ...

  3. matlab仿真限幅发散,基于模糊控制的直流电机调速系统MATLAB仿真_贾东耀

    基于模糊控制的直流电机调速系统MATLAB 仿真 贾东耀,曾智刚 (广东工业大学,广州市 510090) 摘 要:采用Fuzzy-PI 控制策略进行直流电机的调速系统设计,它克服了简单模糊控制和传统P ...

  4. 【ISAR成像定标方法(4)—基于参数估计法的方位维定标MATLAB仿真】

    目录 前提介绍 基于LOG算子的目标散射点提取 基于ICPF的转速估计 ISAR成像定标仿真实验 结语 前提介绍 本章内容简介:分析了CPF(三次相位函数法),CICPF(相干三次相位函数法)和ICP ...

  5. 基于瞬时无功功率ip-iq的谐波信号检测MATLAB仿真

    建议使用MATLAB2021b 资源: 基于瞬时无功功率ip-iq的谐波信号检测MATLAB仿真资源-CSDN文库 整体模型: 模型具体工作原理不做介绍,因为此方法很老,参考文献巨多!!!  单相输入 ...

  6. 神经网络pid控制器MATLAB,基于BP神经网络的PID控制器及其MATLAB仿真.pdf

    基于BP神经网络的PID控制器及其MATLAB仿真.pdf 2009 NO.10 中国新技术新产品 China New Technologies and Products 高新技术 基于BP 神经网络 ...

  7. 基于 VANET 的车辆网络通信系统的 Matlab 仿真实现

    基于 VANET 的车辆网络通信系统的 Matlab 仿真实现 现如今,车辆自组网(VANET)已经成为一种热门的技术.它将车与车之间.车与基础设施之间的通信联系起来,形成一种智能化的交通网络.因此, ...

  8. 图像的常用灰度变换——负片、伽马变换、对数变换、直方图均衡化、自适应灰度变换及其MATLAB实现

    灰度变换是图像预处理的重要手段,常见的变换方法如下,图文并茂和大家一起学习: %% 尝试灰度变换--伽马变换和对数变换.直方图均衡化clc,clear,close allf = imread('C:\ ...

  9. 基于RFM-SCAN的图像配准算法的matlab仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 这些匹配点通常是基于描述符相似性创建的.为了实现这一目标,现有的尝试通常涉及在几何约束下估计图像变换,其中需要预定义的变换模型 ...

最新文章

  1. 浅谈 javascript 中的this绑定问题
  2. 阿里百度12个iOS 技术面试题及答案总结,希望对你有帮助!
  3. html 旋转木马 轮播,JS实现旋转木马式图片轮播效果
  4. 网络驱动器映射成功但无法更新文件_我的电脑访问NAS像打开本地硬盘那样打开网络NAS...
  5. 安卓开发 xml添加滑动条
  6. @软考考生,你要的软考论文写作技巧和论文范文来啦~
  7. 西门子atch指令详解_西门子PLC中断指令?
  8. 100道经典的c语言面试题
  9. iSCSI Target和Initiator安装与操作步骤详解
  10. spider_study 1
  11. python乒乓球比赛规则介绍_用英语介绍乒乓球的比赛规则
  12. 【VS问题已解决】警告被视为错误 - 没有生成“object”文件
  13. 在Apple开发官网测试TestFlight
  14. 计算机考研难度档,计算机考研院校报考难度排行
  15. 运动估计和最佳匹配块搜索算法
  16. 如何提高本地文件上传至百度云的速度_【软件推荐】满速下载软件,说出来你可能不信最高速度达到150m/s...
  17. Openwrt无线管理工具/命令
  18. 采取递归算法的方式升级打怪
  19. pmos低电平驱动_MOS管的低端驱动和高端驱动
  20. pagerank 的介绍

热门文章

  1. 网络bcc程序测试方案
  2. mysql 4.0字符集,mysql4.0升级到mysql5(4.1),解决字符集问题
  3. 技嘉z68pds3刷中文bios_技嘉RTX 3080 VISION OC雪鹰显卡评测:内容创作、3A游戏两不误之选...
  4. oracle往mysql数据同步存储过程_Oracle数据库之间数据同步
  5. mysql row 转int_mysql_row[]取值转换有关问题,
  6. php后台图片压缩_php实现等比例压缩图片
  7. 你知道吗?OAuth2客户端有两种,认证方式有七种。
  8. 如何轻松搞定CRUD的创建人、修改人、时间等字段的赋值
  9. 福利继续:赠书《Spring Cloud微服务-全栈技术与案例解析》
  10. html页面怎样禁止复制粘贴,javascript中如何禁止复制粘贴?