二元回归解决图像恢复问题(图像去噪)

本文介绍了利用二元高斯线性回归解决图像恢复问题,通过对比不同方法(如按行回归、整幅图片回归、区域回归等)在0.6和0.8噪音比下的效果,发现将图片均分为100x100区域进行二元高斯线性回归并增加sigma维度的方法最优,提升了图像恢复质量。
摘要由CSDN通过智能技术生成

1 概述

       对于本次实验,进行了多次方法的更新迭代,最终使用多变量固定窗口二元高斯回归方法,自我测试效果达到:0.8噪音比下,原受损图像距离774.9727,处理后距离33.2362;0.6噪音比下,原受损图像距离671.1107,处理后距离20.1649;与一元线性回归相比提升三分之一以上。效果良好。


Figure 0

      

从过程来说,依次进行了如下尝试与测试:

              按行一元高斯线性回归

              整幅图片二元高斯线性回归

              增加Phi数量进行整幅图片二元高斯线性回归

              将图片均分为10 x10 按区域进行二元高斯线性回归

              将图片均分为100x 100 按区域进行二元高斯线性回归

              将图片均分为100x 100 按区域进行二元高斯线性回归 利用双边滤波器平滑处理

              将图片均分为100x 100 按区域进行二元高斯线性回归 增加sigma维度

              将图片分为固定大小5x5区域按区域进行二元高斯线性回归 增加sigma维度

              将图片分为固定大小5x5区域按区进行二元高斯线性回归 加sigma维度 并行化

       效果如Figure 0 所示。

接下来将依次介绍详细过程及测试效果。

2 算法依次介绍

2.1 按行一元高斯线性回归

       这是助教提供的算法。思路是对每一行,根据非噪音进行回归分析,算出权重,然后计算出信息丢失点。其中,根据该点通道值是否为零判断是否是信息丢失点。Phi函数为高斯函数,sigma为0.01,Phi函数数量为50.

       Figure 1为测试原图。640x640

       在0.6的噪音比下,受损图片与原图的距离为671.1107。在利用按行线性回归后,效果如Figure 3,距离为31.9975。


Figure 1 测试原图

 

Figure 2 0.6噪音比图

 

Figure 3

 

       在0.8的噪音比下,图片如Figure 4,距离达到774.9727。利用一元线性回归处理后,效果如Figure 5,距离达到54.2619.



Figure 4

 



Figure 5

2.2 整幅图片二元高斯线性回归

       直接对整幅图片,以行、列为二维变量,其他不变进行二元高斯线性回归。高斯函数参数与按行一元相似。在0.6噪音比下,效果如Figure 6,距离变化为671.1107 - 201.1378。在0.8噪音比下,效果如Figure 7,距离变化为774.9727 - 231.9823。

       效果非常差。我认为是在整幅图像下,像素点之间的相关性较弱,难以根据50个参数建立起回归函数。即使将参数扩展到1000时,效果也并未发生较大变化。0.6噪音比下,距离变化为671.1107 - 201.1402;0.8噪音比下,距离变化为774.9727 - 231.9911.


Figure 6


Figure 7

      

代码:

      

basisNum = 50; % define the number of basis functions.

sigma = 0.01; % define the standard deviation.

Phi_mu_x = linspace(1, cols, basisNum)/cols; % set the mean x value of each basis function

Phi_mu_y = linspace(1, rows, basisNum)/rows; % set the mean y value of each basis function

Phi_mu = [Phi_mu_x(:) Phi_mu_y(:)];

Phi_sigma = sigma * ones(2, basisNum); % here we set the standard deviation to the same value for brevity.

 

% use pixel index as the independent variable in the regression function

x = 1:cols;

x = (x - min(x)) / (max(x)-min(x));

y = 1:rows;

y = (y - min(y)) / (max(y)-min(y));

[X, Y] = meshgrid(x, y);

r = [X(:) Y(:)];

 

% select the missing pixels randomly

resImg = corrImg;

 

% for each channel

for k = 1:channels

    % select the missing pixels

    msk = noiseMask(:, :, k);

    msk = msk(:,:);

    misId = find(msk<1);

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值