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

article/2025/4/21 15:23:13

三 其他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。

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

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

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

4.渐进边界条件

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

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

对于区域1:

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

 对于区域2:

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

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

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

Repeated BC效果如下:

渐进边界条件效果如下:

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

        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+外部边界的梯度,那么可以理解并且结果是理想的,但是就不太符合公式里的说法了,因为公式写的是\Delta A,而不是{\Delta A}'。但是如果是只对A的话那就毫无意义了。公式里最小化函数右侧子式的右下角的区域限定为\partial 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(基于极通道的图像去模糊)代码


http://chatgpt.dhexx.cn/article/KtQWJHXJ.shtml

相关文章

振铃效应与样点自适应补偿(Sample Adaptive Offset,SAO)技术

SAO&#xff08;Sample Adaptive Offset&#xff0c;自适应样点补偿&#xff09;原理分析 这里写目录标题 SAO&#xff08;Sample Adaptive Offset&#xff0c;自适应样点补偿&#xff09;原理分析1. H265压缩原理2. SAO的作用3. SAO原理简介4. SAO的分类--BO5. SAO的分类--EO6…

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

一 介绍 传统的图像复原方法可能会给复原图像引入振铃效应&#xff0c;并且以边界振铃为主&#xff1b;产生这种现象的原因简单地来讲主要是由于模糊核的 不精确或者信息丢失。 [图片来自论文《光学合成孔径系统成像性能优化与分析》P79 魏小峰] Renting liu、Jiaya J…

rpm包的卸载

两个步骤&#xff1a; 1、查询 即查询Linux中安装的完整包名 命令【rpm -qa | grep xxx】 例如&#xff1a;rpm -qa | grep unzip 2、卸载 命令&#xff1a;rpm -e RPM包的完整名称 例如&#xff1a;rpm -e unzip-6.0-19.el7.x86_64 卸载之后检查发现已经不存在 - - -…

linux卸载命令6,小编为你叙述linux卸载命令【操作流程】

大家应该都知道我们在使用电脑的时候&#xff0c;会发现linux卸载命令【操作流程】的问题&#xff0c;如今还有很多用户不知道如何处理linux卸载命令【操作流程】的情况&#xff0c;于是我就给大家整理总结了linux卸载命令【操作流程】的具体处理方案&#xff0c;就是按照1&…

Linux常见命令 25 - RPM包安装、升级、卸载、查询、校验、提取

目录 1. 包名与包全名 2. RPM安装 3. RPM包升级 4. RPM包卸载 5. 查询是否安装RPM包 6. RPM包校验 7. RPM包中文件提取 1. 包名与包全名 包全名&#xff1a;操作的包是没有安装的软件包时&#xff0c;使用包全名&#xff0c;而且要注意路径包名&#xff1a;操作已经安…

linuxrpm命令卸载python_Linux RPM包安装、卸载、升级命令讲解

一个 RPM 包包含了已压缩的软件文件集以及该软件的内容信息&#xff0c;通常表现为以 .rpm 扩展名结尾的文件&#xff0c;例如 samba.rpm 。如果需要对RPM包进行操作则需要使用rpm命令。 一、RPM包的来源 所有RPM包都在系统光盘的Packages目录中&#xff0c;那么我们如何获取包…

rpm卸载包的命令

可以先用rpm -q xxx 或者 rpm -qf xxx/bin/xxxx.xx 来查询一下所属的rpm包的名字。然后用rpm -e xxxxxx 来删之。xxx/bin/xxxx.xx 是一个包中任意的文件xxxxxx 是查询得到的rpm包的名称 rpm -e的时候后面的文件名不用加版本号 安全地卸载 RPM卸载软件包,并不是简单地将原来安…

linux的rpm卸载,linux rpm卸载参数

linux rpm卸载参数 本站整理 发布时间:2009-03-10 15:38:48 作者:jb51.net 我要评论 rpm卸载参数--test : 卸载测试 --nodeps : 不检查依赖 --noscripts : 不执行脚本程序 --notriggers : 不执行触发程序 --justdb : 仅修改数据库 --force 强制 RPM卸载软件包,并不是…

rpm卸载命令

可以先用rpm -q xxx 或者 rpm -qf xxx/bin/xxxx.xx 来查询一下所属的rpm包的名字。 然后用rpm -e xxxxxx 来删之。 xxx/bin/xxxx.xx 是一个包中任意的文件 xxxxxx 是查询得到的rpm包的名称 rpm -e的时候后面的文件名不用加版本号 安全地卸载 RPM卸载软件包,并不是简单…

关于传递函数的双边线性Z变换+差分方程

下午查了一下午资料&#xff0c;翻看了一些书籍&#xff0c;看了一些视频学习&#xff01;&#xff01;&#xff01;抛开这些&#xff0c;进入整体。 双边线性Z变换&#xff1a; 将S域虚轴和实轴改为Z域单位圆&#xff0c;由连续变为离散。 线性公式&#xff1a;&#xff08;如…

基于深度学习的视频预测研究综述

原址&#xff1a;http://html.rhhz.net/tis/html/201707032.htm &#xff08;收集材料ing&#xff0c;为论文做准备)[综述性文章&#xff0c;&#xff0c;&#xff0c;可以做背景资料] 莫凌飞, 蒋红亮, 李煊鹏 摘要&#xff1a;近年来&#xff0c;深度学习算法在众多有监…

【数字信号处理】傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )

文章目录 一、PCM 音频信号处理二、要点说明 一、PCM 音频信号处理 给定一段 PCM 音频数据 , 封装到 .WAV 文件 中 , 此时的信号 是 实信号 , 每个 PCM 音频采样都是一个 实数值 , 绘制该 音频数据 实信号 的 " 幅频特性 " , 将该 PCM 音频的 频率 移动 6 k H z 6…

Three.js视频教程

Threejs引擎 Threejs是WebGL多款3D引擎之一&#xff0c;threejs相比较babylonjs、cesiumjs等引擎在国内使用的更广泛&#xff0c;中文资料更多&#xff0c;相关招聘更多。所以对于WebGL工程师来说&#xff0c;学习threejs是很有必要的。 视频教程发布地址 案例欣赏 下面一些…

AV1视频编解码器核心编码工具概述

一、介绍 在过去的十年里&#xff0c;基于网络的视频应用变得非常普遍&#xff0c;现代设备和网络基础设施推动了高分辨率、高质量内容消费的快速增长。因此&#xff0c;占主导地位的带宽消费者&#xff0c;如视频点播&#xff08;VoD&#xff09;、实时流媒体和会话视频&…

Android平台上基于OpenGl渲染yuv视频

本篇文章已授权微信公众号 guolin_blog &#xff08;郭霖&#xff09;独家发布 更多音视频开发文章&#xff0c;请看&#xff1a;音视频开发专栏 介绍一个自己刚出炉的音视频播放录制开源项目 前言 这是我音视频专栏的第一篇实例解析&#xff0c;也算是入门篇&#xff0c;重…

视频编码基本原理

原博客地址&#xff1a;https://blog.csdn.net/leixiaohua1020/article/details/28114081 视频编码基本原理 1.视频编码基本原理 &#xff08;1&#xff09; 视频信号的冗余信息 以记录数字视频的YUV分量格式为例&#xff0c;YUV分别代表亮度与两个色差信号。例如对于现有的…

从零开始傅里叶变换

1.前言 傅里叶变换是很多领域的基础工具&#xff0c;常用来做频域变换。但凭什么傅里叶变换可以转换至频域&#xff0c;又什么是频域。看门见山。 连续傅里叶变换公式: F ( w ) < f ( t ) , e i w t > ∫ − ∞ ∞ f ( t ) e − i w t d t (1.1) F(w) <f(t),…

小波变换(一)

小波变换(一) 由于项目可能会用到的原因,学一下,感觉已有的通俗易懂教程不够相应的学术性. 教程:《数字信号处理》陈后金著 视频教程:中国大学mooc-数字信号处理 文章目录 小波变换(一)傅里叶变换的局限性短时傅里叶变换(STFT)时间分辨率频谱分辨率我们到底想要什么东西 信号…

360视频:旋转球面投影RSP

旋转球面投影&#xff08;Rotated sphere projection&#xff0c;RSP&#xff09;将球体分为两个相同的部分&#xff0c;然后投影到平面上&#xff0c;宽高比3&#xff1a;2。 图1 RSP投影 球面上两部分的分割线类似于图2中网球上的分割线。 图2 网球分割示意图 Frame Packin…

视频防抖技术的实现

1. 介绍 视频防抖是指用于减少摄像机运动对最终视频的影响的一系列方法。摄像机的运动可以是平移&#xff08;比如沿着x、y、z方向上的运动&#xff09;或旋转&#xff08;偏航、俯仰、翻滚&#xff09;。 对视频防抖的需求在许多领域都有。 这在消费者和专业摄像中是极其重…