图像去雾并与其他非物理模型进行对比

news2025/1/11 23:00:33

```matlab
clear
clc
close all
img=imread( 'scene1.jpg');subplot(221),imshow(uint8(img)), title('原始低照度图像”);img(::,1)=255-img(::1);
img(::,2)=255-img(:2);
img(:,:3)=255-img(: 3);
sz=size(img);
w=sZ(2);
h=sz(1);
%计算RGB取最小值后的图像darkl
dark l= zeros(h,w);
for y=1:h
for x=1:W
dark_l(y,x)= min(img(y,x,:));%计算每个像素点RGB中最小的值
end
end
kenlRatio = .03:
krnlsz = floor(max([3, w*kenlRatio, h*kenlRatio]));
dark l2 = minfilt2(dark l, [krnlsz,krnlsz]);%最小值滤波
dark 12(h,w)=0;
dark l2=uint8(dark 12);
dark channel=double(dark 12);
aa=dark channel;
hh=floor(w*h*0.001);
bb=reshape(aa,1,);%将a转换为行向量
bb=sort(bb,'descend');%将b按从大到小顺序排列。
cc=find(bb>0,hh);%找到前4个大于0(非NaN)的数的位置
dd=bb(cc(hh));%找到第4大的数
ee=aa(find(aa>dd));%较大的前3个数
[mm,nn]=find(aa>dd);%较大的前3个数对应下标
AA=fee mm nnl:
bw=zeros(h,w);
num=length(find(aa>dd));
sum潍鈔伺0卮繡人始
for y=1:h
for x=1:W
for k=1:num
if y==AA(k,2)&& x==AA(k,3)&& dark channel(y,x)==AA(k,1)bw(y,x)=255;
sum=sum+AA(k,1);
end
end
end
end
meandc=floor(sum/num);
minAtomsLight = 240:
A= min([minAtomsLight, meandc]);%计算大气光A
w0=0.9:
t=1-w0*(dark channel/A);%计算透射率
t0=0.1;
t=max(t,t0);
img d= double(img);
J= zeros(h,w,3);
J(:,:,1)= (img_d(::,1)-(1-t)*A)./t;%计算去雾后的R通道(:,:,2)= (img_d(::,2)-(1-t)*A)./t;%计算去雾后的G通道J(:,:3)= (img_d(:,:,3)-(1-t)*A)./t;%计算去雾后的B通道J=uint8(J);
J(::1)=255-J(::1);
J(::2)=255-J(::2);
J(::3)=255-J(::3);
subplot(222),imshow(J), title("基于暗原色先验的低照度图像增强”);%去雾图像imwrite(,'Lyewan.bmp');
Image=(imread('scene1.jpg'));
%读取彩色图像,提取出红、绿、蓝三个通道的像素值。
% subplot(1,3,1),imshow(lmage), title(原始图像”);
height,width,c]=size(lmage);
Rl=double(lmage(:,:,1)); Gl=double(lmage(:,:,2)); Bl=double(lmage(:..3));
%对每个通道的像素值进行高斯滤波,得到估计的光照分量。
sigma=100; filtersize=[height, widthl; gaussfilter=fspecial('gaussian,filtersize,sigma); Rlow=imfilter(Rl,gaussfilter,replicate,'conv'):
3low=imfilter(Gl,gaussfilter,'replicate','conv');low=imfilter(Bl.gaussfilter.'replicate'.'conv'):
%将估计的光照分量归一化到0到1之间,并将三个通道合并成一张彩色图像
ninRL=min(min(Rlow): minGL=min(min(Glow); minBL=min(min(Blow); maxRL=max(max(Rlow); maxGL=max(max(Glow); maxBL=max(max(Blow).
RLi=(Rlow-minRL//(maxRL-minRL):
3Li=(Glow-minGL)/(maxGL-minGL),
BLi=(Blow-minBL)/(maxBL-minBL);
i=cat(3.RLi.GLi.BLi):
% subplot(1,3,2),imshow(Li), title("估计光照分量”):
%通道的像素值进行对数变换,得到强光照下的图像,并将三个通道合并成一张彩色图像。
Rhigh=log(Rl./Rlow+1):
Shigh=log(Gl./Glow+1):
Bhigh=log(B1./Blow+1): SSRl=cat(3,Rhigh,Ghigh,Bhigh);
subplot(2,2,3),imshow(SSRl), title("单尺度Retinex增强');
Image=imread('scene1.jpg');[height width c]=size(lmage);dark l= zeros(height,width);
for y=1:height
for x=1:width
dark_l(y,x)= min(lmage(y,x,:));%计算RGB取最小值后的图像darkl
end
end
kenlRatio = .03;
krnlsz = floor(max([3, width*kenlRatio, height*kenlRatio]));dark l2= minfilt2(darkl, [krnlsz,krnlsz]);%最小值滤波
dark l2(height,width)=0;
dark channel=dark l2;
hh=floor(width*height*0.001);
bb=reshape(dark channel,1,[]);
bb=sort(bb,'descend');
cc=find(bb>0,hh);
dd=bb(cc(hh));
ee=dark channel(find(dark channel>dd));
AA=[ee];
num=length(find(dark channel>dd));
sum=0:
for k=1:num
sum=sum+AA(k);
end
meandc=floor(sum/num):
minAtomsLight = 240;
A= min([minAtomsLight, meandc]);%计算大气光A
w0=0.9: t0=0.3;%设置调节参数wO值
t=1-w0*(dark channel/A);%计算透射率t
t=max(t,tO);
img d= double(lmage);
Newlmage = zeros(height,width,3);Newmage(:,:,1)= (img_d(:,:,1)-(1-t)*A)./t;%计算去雾后的R通道Newlmage(:,:,2)=(img_d(:,:,2)-(1-t)*A)./t;%计算去雲后的G通道Newlmage(:,:,3)=(img d(:,:,3)-(1-t)*A)./t;%计算去雲后的B通道subplot(224),imshow(uint8(Newlmage)), title('去霎图像");%去雾图像

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1713719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024-2025年跨境电商展览会计划表:共筑未来跨境行业的繁荣

-----------------------------2024年跨境电商展计划如下---------------------------- 2024年,2025年国内跨境电商行业将迎来一系列重大的展会活动,是企业展示品牌、交流趋势、拓展商机的重要平台。全国各地展会排期信息现已出炉,记得收藏哦…

BGP路由策略实验

一、实验拓扑 二、IP分配(骨干) R1: 0/0/0 15.0.0.1 24 0/0/1 18.0.0.2 24 0/0/2 19.0.0.1 24 R2: 0/0/0 16.0.0.1 24 0/0/1 15.0.0.2 24 R3: 0/0/0 17.0.0.2 24 0/0/1 18.0.0.1 24 R4: 0/0/0 16.0…

【Paddle】稀疏计算的使用指南 稀疏ResNet的学习心得 (2) + Paddle3D应用实例稀疏 ResNet代码解读 (1.6w字超详细)

【Paddle】稀疏计算的使用指南 & 稀疏ResNet的学习心得 Paddle3D应用实例稀疏 ResNet代码解读 写在最前面一、稀疏格式简介1. COO(Coordinate Format)2. CSR(Compressed Sparse Row Format) 二、Paddle稀疏张量支持1. 创建 C…

34岁嵌入式开发工程师的出路在哪儿?

作为一个从事智能穿戴行业11年的资深从业者,您积累了丰富的技术和经验,IT行业内有很多发展机会和出路可以选择,以下是一些建议供参考:刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到…

JUC从实战到源码:CompletableFuture详细学习

【JUC】- CompletableFuture详细学习 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页 怒放吧德德 To记录领地 🌝分享学习心得&#xf…

elementUI type=“selection“多选框选中 删除 回显 赋值问题 回显数组改变选中状态未改变

业务需求&#xff1a; 点击查询弹列表框 勾选列表选项保存 可删除可重新查询列表添加 遇到的问题&#xff1a;删除之后查询列表selection回显问题 解决&#xff1a;row-click配合:reserve-selection"true"使用 <el-tableref"refPlanTable":data"…

Java多线程(02)—— 线程等待,线程安全

一、如何终止线程 终止线程就是要让 run 方法尽快执行结束 1. 手动创建标志位 可以通过在代码中手动创建标志位的方式&#xff0c;来作为 run 方法的执行结束条件&#xff1b; public static void main(String[] args) throws InterruptedException {boolean flag true;Thr…

Ableton Live 11 Suite for Mac:音乐创作的全能伙伴

在数字音乐创作的广阔天地中&#xff0c;Ableton Live 11 Suite for Mac无疑是一颗璀璨的明星。作为一款专业的音乐制作软件&#xff0c;它集合了音频录制、编辑、混音、母带制作等全方位功能&#xff0c;为Mac用户提供了无与伦比的音乐创作体验。 Ableton Live 11 Suite拥有直…

这几个素材网站,是B站up主的剪辑素材宝藏库!

1.Videvo 这是一个提供完全免费的视频的网站&#xff0c;主要收集互联网免费的视频片段 网站目前收录了超过2700部高清短片&#xff0c;并且每周都会更新 2.电影预告片资源网——预告片世界 预告片世界是一个个人网站&#xff0c;为粉丝提供最新的高清电影预告片资源的在线观…

(4)医疗图像处理:MRI磁共振成像-成像技术--(杨正汉)

目录 一、特殊成像技术 1.水成像技术 2.化学位移成像技术 二、成像辅助技术 1.脂肪抑制技术 2.磁化转移技术 3.流动补偿技术 4.空间饱和空间标记技术 5.生理门控及导航回波技术 所有的这些技术最终就是为了使得K空间通过傅里叶变化之后得到的图片变的更为清晰。 一、…

全新PSAI设计插件 —— StartAI,让想象触手可及!

告别繁琐的设计过程&#xff0c;StartAI将为你的创作注入新动力&#xff0c;让每一个设计瞬间变得生动而独特。 核心功能介绍&#xff1a; 高清修复 - 每一个设计细节都至关重要&#xff0c;StartAI的高清修复可以细节优化&#xff0c;确保你的设计完美无瑕。 百变生图风格- 从…

linux安装mysql后,配置mysql,并连接navicat软件

Xshell连接登陆服务器 输入全局命令 mysql -u root -p 回车后&#xff0c;输入密码&#xff0c;不显示输入的密码 注意mysql服务状态&#xff0c;是否运行等 修改配置文件my.cnf&#xff0c;这里没找到就找my.ini&#xff0c;指定有一个是对的 find / -name my.cnf 接下…

小心你的小程序被清退!小程序备案全流程攻略

小心你的小程序被清退&#xff01;小程序备案全流程攻略 前言&#xff1a; 接微信官方通知&#xff0c;2023年9月1日后微信小程序必须完成备案才可上架&#xff01;受微信官方调整影响&#xff0c;所有已使用或计划授权微信小程序使用的用户均要求备案后上架产品。 【微信小程…

STM32 OTA需要注意问题

一、OTA设计思路&#xff08;问题&#xff09; 1、根据stm32f405 flash分布&#xff0c;最初将flash划分为四个区域&#xff0c;分别是Bootloader、APP1、APP2、参数区&#xff0c;设备上电后&#xff0c;进入Bootloader程序&#xff0c;判断OTA参数&#xff0c;根据参数来确定…

【YashanDB知识库】自动选举配置错误引发的一系列问题

问题现象 问题出现的步骤/操作&#xff1a; ● 配置自动选举&#xff0c;数据库备库手动发起switch over&#xff0c;命令会报错 ● 主、备库变为只读状态&#xff0c;数据库无法进行读写操作 ● shutdown immediate 停止数据库&#xff0c;此时发现数据库一直没有退出&…

设计以容错:应对失败的12种关键设计思想

"Design for Failure" 这一说法在产品设计、软件开发和系统架构中并不常见&#xff0c;因为它通常与追求成功和可靠性的目标相悖。然而&#xff0c;如果我们从另一个角度来理解它&#xff0c;即“设计以应对失败”或“设计以容错”&#xff0c;那么以下是12种常见的设…

24V_2A_1.2MHZ|PCD0303升压恒频LCD背光源专用电路超小体积封装

概述 PCD0303是一个恒定频率&#xff0c;6针SOT23电流模式升压转换器用于小型低功耗应用。PCD0303 以1.2MHz切换&#xff0c;并且允许使用微小的&#xff0c;低成本电容器和电感器2mm或更小,内部软启动会产生较小的涌入电流延长电池寿命。PCD0303具有自动切换至轻负载下的脉冲…

社交媒体数据恢复:子弹短信

在开始之前&#xff0c;请确保满足以下条件&#xff1a; 您的手机已root。您已知晓备份子弹短信的方法。 以下是子弹短信数据恢复的步骤&#xff1a; 第一步&#xff1a;备份子弹短信 如果您尚未备份子弹短信&#xff0c;请先进行备份。备份方法如下&#xff1a; 进入子弹短…

多用户协作与实时渲染:3D开发工具HOOPS助力汽车行业CAD可视化

在当今汽车行业&#xff0c;计算机辅助设计&#xff08;CAD&#xff09;可视化是产品设计和开发过程中不可或缺的一环。随着汽车设计复杂性的增加&#xff0c;CAD可视化不仅仅是一个设计工具&#xff0c;更是一个沟通和协作的平台。然而&#xff0c;尽管技术不断进步&#xff0…

Gartner发布2024年数据与分析重要趋势

Gartner公司发布了2024年数据与分析&#xff08;D&A&#xff09;重要趋势&#xff0c;这些趋势正在带来包括组织、人事问题在内的各种挑战。 Gartner高级研究总监方琦表示&#xff1a;“AI的力量以及日益重要的生成式AI正在改变人们的工作方式、团队协作方式和流程运作方式…