资讯动态

【图像评价】基于matlab图像去雾质量评价【含Matlab源码 066期】

发布时间:2026/10/3 16:27:22 来源:尧图企业网站定制
欢迎来到海神之光博客之家✅博主简介热爱科研的Matlab仿真开发者修心和技术同步精进个人主页海神之光代码获取方式海神之光Matlab王者学习之路—代码获取方式⛳️座右铭行百里者半于九十。更多Matlab图像处理仿真内容点击①Matlab图像处理进阶版②付费专栏Matlab图像处理初级版⛳️关注CSDN海神之光更多资源等你来⛄一、简介基于matlab图像去雾质量评价 通过新增可见变比、平均梯度、饱和像素百分比三个指标评价去雾图像质量。1 图像去雾早期的雾天图像的去雾处理方法经过多年的发展逐步演化成两类研究方向从图像增强的角度来研究以及从大气成像的物理模型的角度来研究。基于图像增强的去雾方法不考虑雾天成像的影响因素从图像增强的角度增加图像对比度模拟人类视觉感知突出图像的细节以改善图像的视觉效果。Retinex就是一种常用的基于图像增强的去雾方法其理论基础是图像的色感一致性。基于物理模型的去雾方法研究大气散射模型从理论上分析图像在雾的影响下的成像机理通过构建相应的数学模型进行计算来去除雾气的影响复原出清晰的图像效果。He等依据大气散射模型提出了暗原色先验理论来估计透射率算法简单而且非常有效极大地推动了该研究方向的发展。随着深度学习理论的发展通过构建深度网络图像去雾处理有了更丰富的手段。Cai等提出一种端到端的去雾网络DehazeNet对其中的卷积神经网络进行特殊设计来提取相关特征使用局部极值操作抑制透射率的噪声同时利用新的激活函数 (双边纠正线性单元) 提高透射率的精度对基于深度学习的图像去雾起到了很好的推动作用。2 图像质量评价图像质量评价对图像处理算法的可行性分析以及某类算法达成效果的比较都起着非常重要的指导作用。随着图像处理技术的发展对于图像质量评价的研究也日益深入新的评价指标和评价算法不断涌现共同推动了图像质量评价的进步。图像质量评价的方法大致可分为两类:主观评价和客观评价[6]。主观评价是由参与者对图像质量进行直接评价是图像质量评价最直观的方法。但由于个别人对于图像的理解差异性很大主观评价方法如果要达到预期的评价效果需要有多人的参与和判断以群体的形式来消除个体差异性这就导致主观评价方法受到很大的约束和限制只能在某些特定的场合下采用。客观评价通过建立数学模型来模拟人的视觉系统根据数学公式的推导采用相应的算法对图像质量进行评价。按照是否需要原始图像作为参考信息客观评价方法又分为无参考 (No-reference, NR) 评价、部分参考 (Reduced-Reference, RR) 评价和全参考 (Full-Reference, FR) 评价三类。常见的主观评价和客观评价的分类如图1所示。图1 图像质量评价分类在客观评价中的全参考评价模式下关于原始图像和处理后的图像之间的比对通常会采用峰值信噪比 (PSNR) 进行衡量。PSNR从统计学的角度来衡量原始图像和处理后图像的关系计算原始图像和处理后图像的对应像素点灰度值之间的差异。对于尺寸为M×N的图像PSNR定义如下:其中处理前图像在坐标空间 (i, j) 的灰度值使用R (i, j) 表示处理后图像在坐标空间 (i, j) 的灰度值使用F (i, j) 表示。通过计算得出的PSNR值越大表示处理后图像与原始图像之间的失真越小图像处理后的质量越好。从公式 (1) 可以看出PSNR计算非常简单但是其仅仅是基于统计学的角度来考虑处理后图像和原始图像对应像素点灰度值之间的差异忽略了图片内部像素点之间的关系这就导致其会和主观评价产生一定的误差。2004年Wang等人提出了结构相似度 (SSIM) 方法将图像内部的结构特征和图像的亮度、图像的对比度一起作为重要的参数。因为其考虑了图像的内部结构在人眼视觉上的差异该方法能和主观评价取得较为一致的结果。假设原始图像和处理后图像分别定义为X和Y则图像亮度信息L (X, Y) 、图像对比度信息C (X, Y) 和图像结构信息S (X, Y) 分别计算如下:其中图像X的均值使用μX表示图像Y的均值使用μY表示图像X的标准差使用σX表示图像Y的标准差使用σY表示图像X与图像Y的协方差使用σXY表示而公式中出现的C1、C2和C3是为计算的可靠性而定义的常数。综合公式 (2) 、公式 (3) 和公式 (4) 定义两幅图像的SSIM如下:其中α、β、γ是为了调整亮度信息、对比度信息和结构信息三者所占比重而设定的参数。通过以上公式计算出的SSIM (X, Y) 的取值在0和1之间越接近1表示处理后的图像和原始图像失真程度越小。和PSNR进行对比SSIM考虑了图像内部的结构相关信息更加符合人类视觉对图像特征的理解因此其应用更加广泛。⛄二、部分源代码%%%% Cleaningclcclear allclose all%%%% Images reading: the input 2 images must be grayscaleNameOri‘Original.pgm’;%NameResto‘Restored.pgm’;NameResto‘Restored2.pgm’;%NameResto‘Restored3.pgm’;%NameResto‘Restored4.pgm’;%NameResto‘Restored5.pgm’;I1imread(NameOri);I1double(I1);% if the input image is a color image, use following line% I1double(rgb2gray(uint8(I1)));[nl,nc]size(I1);R1imread(NameResto);R1double(R1);% if the input image is a color image, use following line% R1double(rgb2gray(uint8(R1)));%%%% Figure 1figure(1)colormap graysubplot(1,2,1)imagesc(I1)axis imagetitle(‘Original’)subplot(1,2,2)imagesc(R1)axis imagetitle(‘Restored’)function [Mask Crr]functionContrastAt5PerCent(I1,S,percentage)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Inputs %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% I1 : Original image% S : SubWindow size (default 7)% perCentage : Visibility percentage (default 5)% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Outputs %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Mask : Mask of the visibility contrast percentage% Crr : valeur du contraste visibile (percentage)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if nargin1error(‘not enough argument’)endif nargin2S7;endif nargin3percentage5;end[nl,nc,dd]size(I1);%%% 4-neighborhood pixelsseh[0 1 0;0 1 0;0 0 0];seg[0 0 0;1 1 0;0 0 0];%%% minimum and maximum calculationI1pad padarray(I1,[3 3],‘symmetric’);Igmin11imerode(I1pad,seg,‘full’);%腐蚀Ihmin11imerode(I1pad,seh,‘full’);Igmax11imdilate(I1pad,seg,‘full’);%膨胀Ihmax11imdilate(I1pad,seh,‘full’);Igmin1Igmin11(3(1:nl),3(1:nc));Ihmin1Ihmin11(3(1:nl),3(1:nc));Igmax1Igmax11(3(1:nl),3(1:nc));Ihmax1Ihmax11(3(1:nl),3(1:nc));%%% pads image and minimum and maximum matrixI1pad padarray(I1,[S S],‘symmetric’);Igmin1pad padarray(Igmin1,[S S],‘symmetric’);Ihmin1pad padarray(Ihmin1,[S S],‘symmetric’);Igmax1pad padarray(Igmax1,[S S],‘symmetric’);Ihmax1pad padarray(Ihmax1,[S S],‘symmetric’);%%% InitializationIszeros(S,S);Maskfalse(nl2S,nc2S);Crrzeros(nl2S,nc2S);s1;percentagepercentage/2;h waitbar(0,‘Please wait…’);%%% subwindow of size S*Sfor ii1:round(S/2):nlfor jj1:round(S/2):ncIsdouble(I1pad(Sii:2*Sii-1,Sjj:2*Sjj-1)); Isgmindouble(Igmin1pad(Sii:2*Sii-1,Sjj:2*Sjj-1)); Ishmindouble(Ihmin1pad(Sii:2*Sii-1,Sjj:2*Sjj-1)); Isgmaxdouble(Igmax1pad(Sii:2*Sii-1,Sjj:2*Sjj-1)); Ishmaxdouble(Ihmax1pad(Sii:2*Sii-1,Sjj:2*Sjj-1)); %%% horizontal and vertical contrasts Cgxx1zeros(1,S^2); Chxx1zeros(1,S^2); Isminround(min(Is(:))); Ismaxround(max(Is(:))); if(Ismin0) Ismin1;end if(Ismin256) Ismin256;end if(Ismax0) Ismax1; end if(Ismax256) Ismax256;end Fcubefalse(S,S,Ismax-Ismin1); Czeros(1,Ismax); Gzeros(1,Ismax); for sIsmin:Ismax %%% we vary the threshold Fg0; %%% Pixels cardinal separated by s pg1; %%% Contrast indice Fh0; ph1;⛄三、运行结果⛄四、matlab版本及参考文献1 matlab版本2014a2 参考文献[1]韦忠亮,许光宇,张顺香.基于MATLAB的去雾图像质量评价系统[J].黑龙江工业学院学报(综合版). 2019,19(08)3 备注简介此部分摘自互联网仅供参考若侵权联系删除 仿真咨询1 各类智能优化算法改进及应用生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化2 机器学习和深度学习方面卷积神经网络CNN、LSTM、支持向量机SVM、最小二乘支持向量机LSSVM、极限学习机ELM、核极限学习机KELM、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断3 图像处理方面图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知4 路径规划方面旅行商问题TSP、车辆路径问题VRP、MVRP、CVRP、VRPTW等、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化5 无人机应用方面无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配6 无线传感器定位及布局方面传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化7 信号处理方面信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化8 电力系统方面微电网优化、无功优化、配电网重构、储能配置9 元胞自动机方面交通流 人群疏散 病毒扩散 晶体生长10 雷达方面卡尔曼滤波跟踪、航迹关联、航迹融合

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑