首页 > 编程语言 >m基于POCS算法的空域序列图像超分辨率重建matlab仿真

m基于POCS算法的空域序列图像超分辨率重建matlab仿真

时间:2023-05-06 23:44:21浏览次数:42  
标签:Image POCS 像素 空域 matlab 图像 分辨率 重建

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

 

 

2.算法涉及理论知识概要

       随着信息处理技术和视觉通信技术的高速发展,人们获取的知识量爆炸式增长,因此迫切的要求完善的信息处理技术为人们提供更加方便、快捷服务。数字图像及及其相关技术是信息处理技术的重要内容之一,对于数字图像一般要求是高分辨图像,如:医学图像要求能够显示出那些人眼不能辨别出的细微病灶;卫星地面要求卫星图像至少能够辨别出人的脸相甚至是证件;有些检测识别控制装置需要足够高分辨率的图像才能保证测量和控制的精度,因此提高图像分辨率是图像获取领域里追求的一个目标。

 

       1970年以来,CCD和CMOS图像传感器广泛的被用来获取数字图像,若要获取高分辨图像,最直接的方法就是提高成像装置的分辨力,由于受传感器阵列排列密度的限制,提高传感器的空间分辨率越来越难,也会大幅度的增加数字摄像机的价格。另外,像运动模糊、系统的点扩散函数模糊等不能够通过改善成像装置硬件的分辨力来解决,所以,图像的超分辨率重构技术的研究有重大的意义,不需要昂贵的图像获取设备,只需要通过计算机软件的处理就能获得高分辨率的图像。

 

        超分辨率图像重建是指从一序列具有互补信息的低分辨率图像来重建一幅高分辨率的清晰图像的复原技术,同时还能够消除加性噪声以及由有限检测器尺寸和光学元件产生的模糊。超分辨率图像重建的目的在于复原截止频率之外的信息,以使图像获得更多的细节和信息。

 

       图像超分辨率重建技术通常可以分为单帧和多帧图像重建方法。单帧图像重建也称图像放大,最早由Harris和Goodman于60年代提出,其思想主要是通过对低分辨率图像静态插值的方法来实现图像分辨率的提高。因为单个图像的利用不能去除由低分辨率图像取样时所具有的混淆和模糊,随后有许多人研究提出了其他复原方法,如线性外推法。80年代末之后,人们在超分辨率图像复原方法研究上取得了突破性的进展。Hunt等人提出和发展了许多有实用价值的方法,如能量连续降减法、贝叶斯分析法;Tsai和Huang提出了在频域中从互有位移的低分辨率图像序列中插值产生一帧高分辨率图像的概念,才从本质上解决了图像超分辨率无唯一解的问题;在此基础上,Kim等人研究了混入噪声和图像有模糊退化情形下的模型,并给出了加权迭代和正则化迭代两种解混叠方法;Bose等人则给出了一种解混叠的总体最小二乘方法;进一步发展中,人们在统计先验知识的使用上也采用了新的方法,如Cheeseman等人使用了基于高斯平滑先验知识的估计器来增强卫星遥感图像,此外,Schultz和Stevenson,Tekalp等人,Keren和Pelegd等人以及Elad和Feuer研究了改善数字图像空间分辨率的空域方法。

 

        在凸集投影方法中定义约束集合(constraint sets)为限制SR重构的一种灵活解空间。约束(constraints)被定义为表示包含所有可能SR重构空间的凸集,而集合(sets)表示可行的解特征,如:非负性,能量绑定等,因此SR重构问题的解空间即为这些凸集约束的交集。凸集投影(POCS)是指给定空间矢量的任一点,定位到满足所有凸集约束的一点的迭代过程。在超分辨率图像重建中, 首先要建立一个联系原始高分辨率图像和低分辨率观测序列的图像获取模型, 一般的图像获取模型可示为:

 

 

 

 

 

         由上面叙述可知双线性插值会导致重建图像的边缘模糊,设计中采用梯度插值法,能够很好的保持图像的边缘信息。

 

(2)边缘振荡效应的抑制

 

      POCS算法重建容易产生边缘振荡效应,边缘振荡是指在重建后的图像边缘处,颜色深的一侧像素颜色变得较浅,而颜色浅的一侧像素颜色变得较深,不能保持原始图像的光滑边缘,呈现出振荡的特性[11]。解决问题的途径就是改变边缘处像素的PSF函数,减小其作用的范围,所以采用Sobel [4] [8]算子来检测高分辨率参考帧的边缘,然后对边缘处的像素使用修正的PSF函数。

 

(3)噪声的减少

 

        高分辨率图像在经过图像的运动估计和 POCS 重建后会出现干扰噪声,这是由于当前帧中的部分像素没有出现在参考帧中,而这部分像素也参与了 POCS 超分辨率重建的过程,则出现一些干扰噪声[10]。在用块匹配算法采用一种设置运动向量可信度区间的方法来减少噪声的出现,MAD 的大小间接反映出匹配的准确度,可以对每一个子块的均值误差 MAD 进行排序,并且设置区间,假设估计的准确的运动向量所占的比列为 99%,可认为 MAD 值从小到大排序后的前 99%的对应的运动向量是准确的,即可设置区间为[0, 0.99],对在置信区间内的子块对应的运动向量,参与图像的重建,而不在置信区间内的子块对应的运动向量,则不参与重建。

 

由前面的分析可知,图像重建实际的操作过程如下,为了更加清洗和详细地表示该过程,这里用伪代码来表示:

 

Step1: 确定图像序列 LR 中的一帧作为参考帧,并对其进行梯度插值,作为高分辨率图像的初始估计;

 

Step2: 对低分辨率图像序列(每帧图像)与参考帧做运动估计(图像配准),得到低分辨率图像相对于参考帧的偏移量,即运动向量场V(k ),并计算运动向量可信度。

 

Step3:   For  i = 1 to q                  % q 为迭代次数

 

For k = 1to p                 % p 为 LR 帧的个数, 对每一帧进行计算

 

For m = 1to M             % M 为 LR 帧的行数

 

For n = 1to N           % N 为 LR 帧的列数

 

3.1 判断像素的运动向量可信度是否在置信区间内,是则继续,

 

根据运动向量场V ( k),计算该像素在估计的 HR 图像位置;

 

3.2 若该像素为 Sobel 检测到的边缘,修改 PSF;

 

3.3 计算 PSF 作用范围内的像素;

 

3.4 模拟采样过程,获得模拟低分辨率像素估计值;

 

3.5计算实际图像像素值与像素估计值之间的残差;

 

3.6根据残差修正估计高分辨率图像的像素值;

 

3.7对修正的高分辨率像素值执行幅值约束;

 

Step4:迭代终止,得到最终的高分辨率图像估。

 

 

 

 

3.MATLAB核心程序

 

%POCS
%POCS
%POCS
%POCS
if sel == 2
    
    %降低图像的分辨率
    for j = 1:Numbers+1
        pixel_low_tmp    = func_lowfbl(pixel(:,:,j),Fenbl_sample);
        pixel_low(:,:,j) = pixel_low_tmp;
    end
    
    
    
    addpath(genpath('b')); 
    figure;
    %原POCS算法
    for j = 1:K_frame
        Image_tmp         = func_pocs_classic(j,pixel_low,min(30,Numbers)+j+1,Fenbl_sample);
        Image_pocs(:,:,j) = Image_tmp; 
        [psnrs,mses]      = func_PSNR(pixel(:,:,j),Image_pocs(:,:,j));
        PSNR_pocs(j)      = psnrs;
        MSE_pocsr(j)      = mses;
    end
    subplot(121);imshow(Image_pocs(:,:,1),[]);title('通过原POCS算法得到的重构图');
    clear Image_pocs    
    
    
    
    %改进后的POCS算法
    for j = 1:K_frame
        
        Image_tmp          = func_pocs(j,pixel_low,min(30,Numbers)+j+1,Fenbl_sample);
        Image_pocs2(:,:,j) = Image_tmp; 
        [psnrs,mses]       = func_PSNR(pixel(:,:,j),Image_pocs2(:,:,j));
        PSNR_pocs2(j)      = psnrs;
        MSE_pocsr2(j)      = mses;
    end
    subplot(122);imshow(Image_pocs2(:,:,1),[]);title('通过改进后的POCS算法得到的重构图');
    clear Image_pocs2
 
 
 
    
    figure;
    plot(PSNR_pocs,'r-o');hold on;
    plot(PSNR_pocs2,'b-o');hold on;
    grid on;
    legend('通过POCS算法得到的重构图','通过改进POCS算法得到的重构图');
    title('PSNR');
    
    save result\dz.mat PSNR_pocs  PSNR_pocs2
end

 

  

 

标签:Image,POCS,像素,空域,matlab,图像,分辨率,重建
From: https://www.cnblogs.com/51matlab/p/17378722.html

相关文章

  • 基于虚拟力算法的WSN无线传感器网络覆盖优化matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:   2.算法涉及理论知识概要       无线传感器网络(WirelessSensorNetworks,WSNs)是一种分布式传感网络,嵌入了传感器的智能设备感测、通信、处理、收集数据,然后通过互联网将数据传输给监测者进行进一步分析,是通过无线通信方......
  • m通过matlab对比PID控制器,自适应PID控制器以及H无穷控制器的控制性能
    1.算法仿真效果matlab2022a仿真结果如下:       2.算法涉及理论知识概要PID控制器        PID控制器(比例-积分-微分控制器),由比例单元P、积分单元I和微分单元D组成。通过Kp,Ki和Kd三个参数的设定。PID控制器主要适用于基本线性和动态特性不随......
  • 16QAM调制解调系统相位盲估计matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要16QAM是指包含16种符号的QAM调制方式。16QAM是用两路独立的正交4ASK信号叠加而成,4ASK是用多电平信号去键控载波而得到的信号。它是2ASK调制的推广,和2ASK相比,这种调制的优点在于信息传输速率高。正交幅度......
  • m通过matlab对比PID控制器,自适应PID控制器以及H无穷控制器的控制性能
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要PID控制器PID控制器(比例-积分-微分控制器),由比例单元P、积分单元I和微分单元D组成。通过Kp,Ki和Kd三个参数的设定。PID控制器主要适用于基本线性和动态特性不随时间变化的系统。PID控制器的方块图......
  • 16QAM调制解调系统相位盲估计matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要16QAM是指包含16种符号的QAM调制方式。       16QAM是用两路独立的正交4ASK信号叠加而成,4ASK是用多电平信号去键控载波而得到的信号。它是2ASK调制的推广,和2ASK相比,这种调制的优点在于信息传......
  • m基于遗传优化的时域声辐射模态的振动控制算法的matlab仿真
    1.算法仿真效果matlab2013b仿真结果如下:         2.算法涉及理论知识概要2.1遗传优化        长度为L的n个二进制串bi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执......
  • 基于蒙特卡洛循环和排队理论的客户结账等待时间模拟优化matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:    当结账窗口数量为22时:到达顾客数:5863服务顾客数:5863损失顾客数:0平均服务时间:0.497495平均队长:11.661919平均等待时长:0.000105顾客不能马上得到服务的概率:0.000020 当结账窗口数量为23时:到达顾客数:5396服务顾客......
  • 基于MobileNet的人脸表情识别系统(MATLAB GUI版+原理详解)
    摘要:本篇博客介绍了基于MobileNet的人脸表情识别系统,支持图片识别、视频识别、摄像头识别等多种形式,通过GUI界面实现表情识别可视化展示。首先介绍了表情识别任务的背景与意义,总结近年来利用深度学习进行表情识别的相关技术和工作。在数据集选择上,本文选择了Fer2013和CK+两个数......
  • 基于深度神经网络的图像分类与训练系统(MATLAB GUI版,代码+图文详解)
    摘要:本博客详细介绍了基于深度神经网络的图像分类与训练系统的MATLAB实现代码,包括GUI界面和数据集,可选择模型进行图片分类,支持一键训练神经网络。首先介绍了基于GoogleNet、ResNet进行图像分类的背景、意义,系统研究现状及相关算法。然后展示了系统的界面演示效果,包括选择图片分......
  • 基于YOLOv4的目标检测系统(附MATLAB代码+GUI实现)
    摘要:本文介绍了一种MATLAB实现的目标检测系统代码,采用YOLOv4检测网络作为核心模型,用于训练和检测各种任务下的目标,并在GUI界面中对各种目标检测结果可视化。文章详细介绍了YOLOv4的实现过程,包括算法原理、MATLAB实现代码、训练数据集、训练过程和图形用户界面。在GUI界面中,用户......