💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞💞💞💞💞💞💞💞💞💥💥💥💥💥💥💥💥
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
🔊博主简介:985研究生,Matlab领域科研开发者;
🚅座右铭:行百里者,半于九十。
🏆代码获取方式:
优快云 Matlab武动乾坤—代码获取方式
更多Matlab图像处理仿真内容点击👇
①Matlab图像处理(进阶版)
⛳️关注优快云 Matlab武动乾坤,更多资源等你来!!
⛄一、图像处理简介
1 前言
在实际应用中,我们的图像常常会被噪声腐蚀,这些噪声或是镜头上的灰尘或水滴,或是旧照片的划痕,或者是图像遭到人为的涂画(比如马赛克)或者图像的部分本身已经损坏。
2 图像修复技术的原理
简而言之,就是利用那些已经被破坏的区域的边缘, 即边缘的颜色和结构,根据这些图像留下的信息去推断被破坏的信息区的信息内容,然后对破坏区进行填补 ,以达到图像修补的目的。
第一个参数src,输入的单通道或三通道图像;
第二个参数inpaintMask,图像的掩码,单通道图像,大小跟原图像一致,inpaintMask图像上除了需要修复的部分之外其他部分的像素值全部为0;
第三个参数dst,输出的经过修复的图像;
第四个参数inpaintRadius,修复算法取的邻域半径,用于计算当前像素点的差值;
第五个参数flags,修复算法,有两种:INPAINT_NS 和I NPAINT_TELEA;
3 图像修复技术发展历程
图像修复技术的研究是计算机视觉以及计算机图形学的一个具有重大意义的研究课题。对于带有损失区域的图像,由于我们并不知道原本图像的具体形式,我们只能类似于“凭空捏造”一些像素去填补这种缺失。正因如此,图像修复实际是根据人类自己的视觉规则对图像进行分析,然后去修补。简言之,修复技术的改进主要依赖于对图像模型的研究和人类视觉认知规则。
传统的图像修复技术通常划分为两大类:一类是基于变分PDF模型的图像修复技术,主要是通过求解偏微分方程来进行修复;另一类则是基于纹理的图像修补技术,通过图像的纹理结构特征匹配进行修复。
2002年,Chan等在 TV 模型的基础上提出了基于曲率驱动扩散(CDD)模型,通过梯度和曲率信息共同调节扩散的速度,优点是视觉连通性较好,缺点是引入了曲率信息,导致计算量和计算时间增加,并且修复后的图像边界比较模糊。
2003年,Criminisi等人提出了一种基于样本块的修补算法,Criminisi算法通过在待修复区域边缘上选取优先权最高的像素点p,以p为中心构造一个n×n大小的像素块,然后在完好区域寻找与该模板块最相似的样本块,用找到的样本块更新模板块中的待修复信息,最后更新已修复块中像素点的置信度,并开始下一次迭代修复,直至修复完成。Criminisi算法采用纹理合成的方法去除图像中的大物体,得到了很好的效果。该算法中,待修复区域的标记,优先权计算,最佳匹配模块的搜索及填充,置信度项的更新是影响该算法效果的几个主要因素。
2005年,Guleryuz提出了一个基于分析字典(小波基、DCT 基、复数小波 基、小波包基)的迭代修复算法,该算法仅利用了局部光滑性(Local Smoothness) 稀疏先验,所以,修复纹理和边缘的修复能力较弱。这种基于稀疏表示的修复,其主要是通过图像信号的稀疏性对图像进行表示,然后通过信号重构对图像进行恢复。通常将其分为两个步骤:第一步是进行稀疏编码,主要提高编码速率;第二部是构建完备字典。经过上述两步,可以保证稀疏表示系数尽可能的非负,进而提高图像修复的效果。目前字典学习算法主要包括MOD、K-SVD、Online等。
2009年《A Randomized Correspondence Algorithm for Structural Image Editing》一文提出了PatchMatch 算法。其核心思想是利用图像的连续性(consistence),一个图像patch块A附近的patch块的最近邻最有可能出现在A的最近邻附近,利用这种图像的连续性大量减少搜索范围,通过迭代的方式保证大多数点能尽快收敛。之后,《基于空间相关性的图像补全》一文,王向阳等人利用这种空间相关性与经典的Criminisi算法结合, 将原来寻找最佳匹配块的全局搜索改为局域搜索,减少了搜索时间。其基本原理是图像的空间分布不是毫无关系的,而是呈现局域相关的特点,即具有相同性质(亮度、颜色等)的像素相邻分布,就图像修补来说,根据这一特性,将经典的Criminisi算法中寻找最佳匹配块的全局搜索改为局域搜索,便能减少搜索时间。
2012年的《基于样本和线性结构信息的大范围图像修复算法》,吴晓军等人提出平均值补偿办法减少匹配误差,通过增加惩罚项来避免一个像素块在图像修复过程中多 次被使用。
2013年,郭勇等人将块匹配法与边缘驱动填充顺序、全局搜索与局部搜索相结合,充分发挥修补过程中填充优先权的作用,有效地修补了图像受损区域的纹理和结构信息。
2018年的《Highly corrupted image inpainting through hypoelliptic diffusion》一文显示了对于大面积破损图像修复的良好效果。该文提出了一个新的仿生图像修复算法,平均和次椭圆化(AHE)算法,它基于次黎曼次椭圆扩散算法和特殊局部平均技术的适当组合。算法分为四个步骤,分为以下4个步骤:预处理阶段(简单平均),主扩散(强平滑);高级平均值;弱平滑。该算法对高度损坏的图像(即超过80%的图像丢失)获得了高质量的修复效果。但破损图像的破损点被要求分布良好,因此该算法实际应用比较有限制。
以上这些都是之前的一些经典的使用传统数学和物理方法进行修复的例子。当下深度学习的方法越来越受到学者专家的推崇,深度学习是机器学习的一个分支,而在很多情况下,机器学习几乎成了人工智能的替代概念。简单地说,就是通过机器学习算法,使计算机有能力从大量已有数据中学习出潜在的规律和特征,以用来对新的样本进行智能识别或者预期未来某件事物的可能性。
近年来,深度学习的方法越来越多的应用在计算机视觉领域,其效果也远超传统的基于数学和物理的方法。在这样的形势之下,越来越多的图形学研究者也开始将目光投向深度学习。在图形学和视觉交叉的领域,一系列问题的研究正在围绕深度学习火热展开,特别是在图像生成(image generation),图像补全(image inpainting)等方面,已经颇有成效。
2016年,Pathak等人的Context-Encoders可以说是鼻祖级别的神经网络修复方法,它构建出一种图像修复的深层生成网络模型。CE的主要思路是结合Encoder-Decoder 网络结构和GAN(Generative Adversarial Networks),Encoder-Decoder 阶段用于学习图像特征和生成图像待修补区域对应的预测图,GAN部分用于判断预测图来自训练集和预测集的可能性,当生成的预测图与Ground Truth在图像内容上达到一致,并且GAN的判别器无法判断预测图是否来自训练集或预测集时,就认为网络模型参数达到了最优状态。网络训练的过程中损失函数都由两部分组成:Encoder-decoder 部分的图像内容约束(Reconstruction Loss)GAN部分的对抗损失(Adversarial Loss)。Context Encoders 采用的是最简单的整体内容约束,也就是预测图与原图的l2 距离。
在CE问世之后,出现了许多在以其为基础而衍生出的改进版CE,图像修复的效果也越来越好。如,2017年的High Resolution Inpainting将生成网络划分为内容生成网络和纹理生成网络两部分,使用上下文编码器的输出初始化孔,然后使用样式传递技术改进纹理,将高频纹理从边界传播到孔洞。内容生成网络直接用于生成图像,推断缺失部分可能的内容。纹理生成网络用于增强内容网络的产出的纹理,具体则为将生成的补全图像和原始无缺失图像输入进纹理生成网络,在某一层feature_map上计算损失,记为Loss NN。内容生成网络需要使用自己的数据进行训练,而纹理生成网络则使用已经训练好的VGG Net。此算法最主要的技术是结合了Context-Encoders和CNNMRF。Perceptual Loss的计算比较复杂,这里利用了PatchMatch的信息,即为缺失部分找到最近似的Patch,为了达到这一点,将缺失部分分为很多个固定大小的patch作为query,也将已有的部分分为同样固定大小的patch,生成dataset PATCHES,在匹配query和PATCHES中最近patch的时候,需要在纹理生成网络中的某个layer的激活值上计算距离而不是计算像素距离。
另外还有SIGGRAPH 2017 年的一篇文章Globally and Locally Consistent Image Completion 是在CE中加入Global+Local两个判别器的改进。GL这篇文章完全以卷积网络作为基础,遵循GAN的思路,设计两部分网络,一部分用于生成图像,一部分用于鉴别生成图像是否与原图片一致。生成图片部分,GL采用12层卷积网络对原始图片(去除需要进行填充的部分)进行encoding,得到一张原图16分之一大小的网格。然后再对该网格采用4层卷积网络进行decoding,从而得到复原图像。鉴别器也被分为两个部分,一个全局鉴别器(Global Discriminator)以及一个局部鉴别器(Local Discriminator)。全局鉴别器将完整图像作为输入,识别场景的全局一致性,而局部鉴别器仅在以填充区域为中心的原图像4分之一大小区域上观测,识别局部一致性。通过采用两个不同的鉴别器,使得最终网络不但可以使全局观测一致,并且能够优化其细节,最终产生更好的图片填充效果。
⛄二、部分源代码
original_img=imread(‘original_image.bmp’);
mask_img=imread(‘mask_image.bmp’);
distorted_img=imread(‘distorted_image.bmp’);
%masked pixels index (rows, cols)
inds=find(mask_img==255);
[rows,cols]=ind2sub(size(mask_img),inds);
r_img=double(distorted_img(:,:,1));
%parameters
sweep_iter=20;
beta_min=0.001;
beta_max=0.02;
step=nthroot(beta_max/beta_min,sweep_iter);
%Gibbs sampler, red channel
errors=zeros(1,sweep_iter);
beta_i=beta_min;
for i=1:(sweep_iter+1)
for j=1:length(rows)
y=rows(j);
x=cols(j);
Ix_val=0.5*(r_img(y,x-1)+r_img(y,x+1));
Iy_val=0.5*(r_img(y-1,x)+r_img(y+1,x));
dx=Ix_val-(0:255);
dy=Iy_val-(0:255);
pdf=exp(-beta_i.*((dx).^2+(dy).^2));
cdf=cumsum(pdf);
I_val=find(cdf>cdf(end)*rand(),1)-1;
r_img(y,x)=I_val;
end
beta_i=beta_i*step;
end
construct_img=original_img;
construct_img(:,:,1)=uint8(r_img);
Err = check_Err(construct_img,original_img,rows,cols);
figure(1);imshow(original_img); title(‘原始图像’); %显示原图像
figure(2);imshow(distorted_img); title(‘受损图像’); %显示受损图像
figure(3);imshow(construct_img); title(‘Gibbs算法修复结果’);
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]张汝峰,项璟,陈鹏,张亚娟,张喜英,薛瑞.基于FMM算法的深度图像修复研究[J].湖北农机化. 2020,(01)
[2]齐玲,王锦.一种基于Criminisi算法改进的图像修复技术[J].软件导刊. 2019,18(04)
[3]何埜,李光耀,肖莽,谢力,彭磊,唐可.基于深度信息的图像修复算法[J].计算机应用. 2015,35(10)
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 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合