三 其他BC

1.Repeated BC

Xu Zhou等人在《A boundary condition based deconvolution framework for image deblurring》提及,由于原文写的公式比较复杂不好理解,所以就不赘述了,其实核心就是外部边界区域内的某个像素点的灰度等于距离其最近图像内像素点的灰度的大小。由于分界线是水平或者垂直的,那就更简单了,假设把外部边界分为8个区域:

即:1中所有像素值等于内部图像最左上角的像素值,3、6、8类似分别对应右上角、左下角、右下角;2、7内每个像素的的像素值为内部图像同列的最上方/下方的像素值;4、5内每个像素的的像素值为内部图像同行的最左方/右方的像素值。

2.Undetermined BC

在《Image and depth from a conventional camera with a coded aperture》中出现,该BC假设使原图像x扩充为带假设边界条件的扩充图像xe的函数P(成为边界条件矩阵)为未知的,并且P的核为0.

3.平滑边界方法

来自于《Reducing boundary artifacts in image deconvolution》。为了节省时间和防止自绘的图片太过于辣眼睛,直接使用论文里的部分图像和公式。

如图所示,G为M*N大小的原始图像图像,作者分别假设了和G等大小的A、B、C,A的底部、顶部分别与G的顶部、底部尽可能相似;B的左部、右部分别与G的右部、左部尽可能相似;C的底部、顶部分别与B的顶部、底部尽可能相似;C的左部、右部分别与A的右部、左部尽可能相似;如(b)所示,相同颜色的为相似部分,最后的扩充图像为(c)图的T。

作者先假设边界宽度为(在此文中,边界宽度与最后扩充的边界宽度不同),用A'表示A经过上下边界扩充后的图像,大小为(M+2)*N,并且满足:

A’上式计算区域即A的边界区域。i取值为1到 。等式右侧左部表示原始图像与高斯滤波器滤波后的平滑图像。A通过最小化下式得到:

​表示对A进行拉普拉斯滤波,​​​​​​ 表示外部边界,上述公式表示在满足A的二阶梯度值的平方和与A‘边界差异值的平方和最小的情况下的最优解即最后的A值。B、C同理,注意B’为M*(N+2),C‘为(M+2)*(N+2)。B’的边界为第1到列和第N++1到第N+2列,C的边界区域第1到列和第N++1到第N+2列、第1到行和第N++1到第N+2行。

4.渐进边界条件

源自《基于稀疏正则化和渐近边界假设的运动模糊图像盲复原》。设扩充边界宽度为n,图像大小为H*W,作者把扩充图像分为8个部分,并且1~4区域按照从内往外的方向扩充:

扩充方法如下:(y表示原始模糊图像)

对于区域1:

即对于某个像素,其灰度值等于下方、左下和右下三个像素灰度值的平均,特殊的,如果位于边界,则是三个像素位于像素内的了两个像素的平均。

对于区域2:

区域3和4类似。然后对区域1~4进行渐进化处理,即从内往外越来越暗:

对于5~8区域,按如下方向扩充:

以区域5为例,下三角某像素的灰度值等于区域2同列最近的像素的灰度值,上三角等于同行最近的灰度值。位于对角线上的像素为同行和同列的均值。

Repeated BC效果如下:

渐进边界条件效果如下:

但是平滑边界方法我理解起来比较模糊, 由于实现起来有点晕,在这里贴上原文对A‘和的定义:

We expand block A by a few pixels vertically, which results in a larger square block A’ containing A and its outer-border ∂A. ∂A is defined as......

之后的内容就是第一个公式。 困惑的问题在于:如果A是H*W的,A的外部边界尽可能地和A‘的最开始alpha行和最后alpha行相似,而A的梯度尽可能地小,那么。。。使得式子出现最小值地情况不就是外部边界就是A’那几行,而内部图像的H*W全零?因为计算梯度只计算内部的。而如果是计算A+外部边界的梯度,那么可以理解并且结果是理想的,但是就不太符合公式里的说法了,因为公式写的是,而不是。但是如果是只对A的话那就毫无意义了。公式里最小化函数右侧子式的右下角的区域限定为,如果我理解没错的话就是指的是A的外部边界和A’的那几行,而不是A和A‘各自的外部边界区域相等。在这就假设是对A和外部边界求梯度吧,但是最后结果只要A中心图像那一块。

___________________________________________________

2021.7.27之前扯犊子自己复现的低级版本删除了

原因是从极通道的图像去模糊的源码里找到Liu的边界条件的代码了

需要的请移步

找不到之前的图,随便找个图贴一下效果吧~

代码部分:

1.Repeated BC

x=rgb2gray(imread('tt.jpg'));
[N1,N2]=size(x);
% [M1,M2]=size(Psf);
M1=127;
M2=127;
m1=(M1-1)/2;
m2=(M1-1)/2;
%Repeated BCxe=zeros(N1+2*m1,N2+2*m2);
for i=1:N1+2*m1for j=1:N2+2*m2if i<=m1 if j<=m1%区域1xe(i,j)=x(1,1);elseif j<=m1+N2 %区域2xe(i,j)=x(1,j-m1);else %区域3xe(i,j)=x(1,N2);endelseif i<=m1+N1 %区域4if j<=m1xe(i,j)=x(i-m1,1);elseif j<=m1+N2%内部图像区域xe(i,j)=x(i-m1,j-m1);else%区域5xe(i,j)=x(i-m1,N2);endelseif j<=m1%区域6xe(i,j)=x(N1,1);elseif j<=m1+N2%区域7xe(i,j)=x(N1,j-m1);else%区域8xe(i,j)=x(N1,N2);end   endend
end

4.渐进边缘条件:

%title:《Blind Restoration of Motion Blurred Images Based on Sparse Regularization and Asymptotic Boundary Hypothesis》
%基于稀疏正则化和渐近边界假设的运动模糊图像盲复原 f=rgb2gray(imread('tt.jpg'));
[H,W]=size(f);
% psf=load('psf_304.txt');
% Psf=psf./sum(sum(psf));
% y=imfilter(f,Psf,'conv');
% [n,n2]=size(psf);%模糊核大小
n=128;%宽度
I=zeros(H+2*n,W+2*n);
I(n+1:n+H,n+1:n+W)=f;
%area 1
for i=n:-1:1%注意从内向外,在area1为从下到上递减for j=n+1:n+Wif j==n+1I(i,j)=(I(i+1,j)+I(i+1,j+1))/2;%如果位于最左侧elseif j==n+WI(i,j)=(I(i+1,j)+I(i+1,j-1))/2;%如果位于最右侧elseI(i,j)=(I(i+1,j-1)+I(i+1,j)+I(i+1,j+1))/3;%其余情况endend
end
%area 4
for i=n+H+1:n+H+n%注意从内向外,在area1为从上到下递增for j=n+1:n+Wif j==n+1I(i,j)=(I(i-1,j)+I(i-1,j+1))/2;elseif j==n+WI(i,j)=(I(i-1,j)+I(i-1,j-1))/2;elseI(i,j)=(I(i-1,j-1)+I(i-1,j)+I(i-1,j+1))/3;endend
end
%area 2
for j=n:-1:1for i=n+1:n+Hif i==n+1I(i,j)=(I(i,j+1)+I(i+1,j+1))/2;elseif i==n+WI(i,j)=(I(i,j+1)+I(i-1,j+1))/2;elseI(i,j)=(I(i-1,j+1)+I(i,j+1)+I(i+1,j+1))/3;endend
end
%area 3
for j=n+W+1:n+W+nfor i=n+1:n+Hif i==n+1I(i,j)=(I(i,j-1)+I(i+1,j-1))/2;elseif i==n+WI(i,j)=(I(i,j-1)+I(i-1,j-1))/2;elseI(i,j)=(I(i-1,j-1)+I(i,j-1)+I(i+1,j-1))/3;endend
end
for i=1:n%渐进缩放I(i,n+1:n+W)=I(i,n+1:n+W)*(i-1)/n;I(n+1:n+H,i)=I(n+1:n+H,i)*(i-1)/n;I(n+1:n+H,n+W+i)=I(n+1:n+H,n+W+i)*(n-i)/n;I(n+H+i,n+1:n+W)=I(n+H+i,n+1:n+W)*(n-i)/n;
end% area 5
for i=1:nfor j=1:nif i<j %上三角I(i,j)=I(i,n+1);elseif i>j I(i,j)=I(n+1,j);elseI(i,j)=(I(i,n+1)+I(n+1,j))/2;endend
end
%area  8
for i=n+H+1:n+H+nfor j=n+W+1:n+W+nif i-H<j-W %上三角I(i,j)=I(n+H,j);elseif i-H>j-W I(i,j)=I(i,n+W);elseI(i,j)=(I(i,n+W)+I(n+H,j))/2;endend
end
%area 6
for i=1:nfor j=n+W+1:n+W+nif i+(j-W-n)<nI(i,j)=I(i,n+W);elseif i+(j-W-n)>nI(i,j)=I(n+1,j);elseI(i,j)=(I(i,n+W)+I(n+1,j))/2;endend
end
%area 7
for i=n+H+1:n+H+nfor j=1:nif j+(i-H-n)<nI(i,j)=I(n+H,j);elseif j+(i-H-n)>nI(i,j)=I(i,n+1);elseI(i,j)=(I(i,n+1)+I(n+H,j))/2;endend
end
I=uint8(I);

3.平滑边缘方法:见 ECP(基于极通道的图像去模糊)代码

几种常用的假设图像边界条件用于抑制振铃效应及实现(下)相关推荐

  1. 几种常用的假设图像边界条件用于抑制振铃效应及实现(上)

    一 介绍 传统的图像复原方法可能会给复原图像引入振铃效应,并且以边界振铃为主:产生这种现象的原因简单地来讲主要是由于模糊核的 不精确或者信息丢失. [图片来自论文<光学合成孔径系统成像性能优化与 ...

  2. OpenCV学习笔记(二):3种常用访问图像中像素的方式

    OpenCV学习笔记(二):3种常用访问图像中像素的方式 #include <opencv2/opencv.hpp>using namespace cv; using namespace ...

  3. matlab fx函数图像,五种常用小波基含MATLAB实现 五种基本函数图像

    五种基本函数图像 1.给出五种常用小波基的时域和频域波形图. 与标准的傅里叶变换相比,小波分析中使用到的小波函数具有不唯一性,即小波函数(t) 具有多样性.小波分析在工程应用中,一个十分重要的问题就 ...

  4. 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](1)

    [论文阅读]Learning Traffic as Images: A Deep Convolutional Neural Network for Large-Scale Transportation ...

  5. 带你认识9种常用卷积神经网络

    摘要:在卷积神经网络中,通过使用filters提取不同的特征,这些filters的权重是在训练期间自动学习的,然后将所有这些提取的特征"组合"以做出决策. 本文分享自华为云社区&l ...

  6. halcon边缘提取颜色相近_初学者福利!三种用Python从图像数据中提取特征的技术...

    全文共4073字,预计学习时长8分钟 你之前是否使用过图像数据?也许你想建立自己的物体检测模型,或者仅仅是想统计走进某栋建筑物的人数,使用计算机视觉技术处理图像拥有无穷无尽的可能性. 但数据科学家最近 ...

  7. 数字图像处理——12种常用图像处理方法对比

    数字图像处理--12种常用图像处理方法对比 1.图像反转 2.对数变换 3.幂次变换 4.分段函数 5.直方图均衡化 6.直方图规定化 7.直方图匹配 8.线性滤波 9.中值滤波与均值滤波 10.拉普 ...

  8. 结合Scikit-learn介绍几种常用的特征选择方法

    特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点.底层结构,这对进一步改善模型.算法都有着重要作用. 特征选择主要有两个功能: 减 ...

  9. 异常数据4种剔除方法_数据分析系列 22/32 | 9种常用的数据分析方法

    要使各种结构化的.非结构化的.海量的数据实现标准化.信息化,能够提供业务绩效评估.业务决策支持等要求,我们首先需要进行数据分析. 同时,围绕业务问题,采用合适的分析方法,分析模型,以及分析工具,这是数 ...

最新文章

  1. c#有多少种可能导致写文件失败?
  2. hdu 1520 没有上司的晚会
  3. SpringBoot整合security的登录问题
  4. MySQL 遇到的问题
  5. 如此简单 | ElasticSearch 最全详细使用教程
  6. 把老赵的页面缓存片断改一下,呵呵
  7. mysql查询缓存到redis_php查询mysql并缓存到redis
  8. JVM运行时内存分区
  9. WORD 如何在方框里打勾?
  10. CT一般扫描参数_最实用GE 64排 CT扫描技术请保存、收藏
  11. 51单片机计算机加原理图,AT89C51单片机的基本结构和工作原理
  12. P3456 [POI2007]GRZ-Ridges and Valleys(bfs)
  13. 自然数e的故事(转)
  14. Android APP连接 MySQL
  15. HTML的基本结构标签(html,head,title,body)
  16. 【哈利波特全集】哈利波特1-7
  17. python与分形0017 - 【教程】彩色色阶蛛网
  18. mapbox控件-@mapbox/mapbox-gl-draw使用(vue3)
  19. 在树莓派3B+上部署Intel NCS2神经网络计算棒
  20. Linux命令——ln命令

热门文章

  1. 国美扔出三帖良药不再沉默
  2. 常用手机的朋友一定要记住这两大技巧
  3. oracle可以更改表名,sql – 更改Oracle表名
  4. 使用Glide加载、缓存图片、Gif、解决背景出现浅绿色、GlideModules冲突
  5. 谈谈对面向对象、类、对象的了解
  6. galler3d的源码分析——数据来源
  7. 计算机网络A习题(2)
  8. 一个简单的接口压力测试
  9. java 可变参数列表_java中可变参数列表的实现方法
  10. python二维列表添加_Python - 二维数组