如果我们可以控制“阻止”伪像出现在何处,则采取解块方法

时间:2018-08-28 19:59:55

标签: algorithm image-processing

我正在研究一种修补方法来处理图像。因此,结果会出现块状Y伪影。

当前常用的方法(或我能找到的)都集中在jpeg之类的单个压缩图像上,并尝试对它们的伪像进行解块并重建它们的清晰版本。

但是,我有完全的控制权来决定块状工件出现在何处。

例如,如果我们有一个尺寸为(16,16)的图像,并且补丁大小为(8,8),则4个块状Y伪像将显示为补丁之间的一条线,如下所示:

.x→0123456789012345...
y  image A
↓
0  ////////\\\\\\\\
1  ////////\\\\\\\\
2  ////////\\\\\\\\
3  ////////\\\\\\\\
4  ////1///\\\\2\\\
5  ////////\\\\\\\\
6  ////////\\\\\\\\
7  ////////\\\\\\\\
8  \\\\\\\\////////
9  \\\\\\\\////////
0  \\\\\\\\////////
1  \\\\3\\\///4////
2  \\\\\\\\////////
3  \\\\\\\\////////
4  \\\\\\\\////////
5  \\\\\\\\////////

并说“我完全控制了该区块”。这意味着我可以用补丁大小的宽度和高度的一半-s预先填充图像。因此产生的9个块状Y伪像将是:

.x→0123456789012345...                   .x→0123456789012345...
y                                        y  image B
↓                                        ↓
0  0000000000000000                      0  1+++***2****+++3
1  0000000000000000                      1  ++++********++++
2  0000000000000000                      2  ++++********++++
3  0000000000000000                      3  ++++********++++
4  00001+++***2****     remove padding   4  ****++++++++****
5  0000++++********           →          5  ****++++++++****
6  0000++++********                      6  ****++++++++****
7  0000++++********                      7  4***++++5+++***6
8  0000****++++++++                      8  ****++++++++****
9  0000****++++++++                      9  ****++++++++****
0  0000****++++++++                      0  ****++++++++****
1  00004***++++5+++                      1  ****++++++++****
2  0000****++++++++                      2  ++++********++++
3  0000****++++++++                      3  ++++********++++
4  0000****++++++++                      4  ++++********++++
5  0000****++++++++                      5  7+++***8****+++9

由于图像B中的“行”现在偏移了4,并位于图像A中的行之间。

真正的问题来了。是否有任何算法可以将A和B一起对图像进行解块?

我的第一个天真想法是制作类似检查的菱形蒙版,然后将两个图像合并。因此结果将是:

.x→0123456789012345...                   .x→0123456789012345...
y  image A and B                         y  
↓                                        ↓
0  AAAAAAAAAAAAAAAA                      0  ////////\\\\\\\\
1  AAAAAAABBAAAAAAA                      1  ///////**\\\\\\\
2  AAAAAABBBBAAAAAA                      2  //////****\\\\\\
3  AAAAABBBBBBAAAAA                      3  /////******\\\\\
4  AAAABBBBBBBBAAAA                      4  ////++++++++\\\\
5  AAABBBBBBBBBBAAA                      5  ///*++++++++*\\\
6  AABBBBBBBBBBBBAA                      6  //**++++++++**\\
7  ABBBBBBBBBBBBBBA                      7  /***++++++++***\
8  ABBBBBBBBBBBBBBA                      8  \***++++++++***/
9  AABBBBBBBBBBBBAA                      9  \\**++++++++**//
0  AAABBBBBBBBBBAAA                      0  \\\*++++++++*///
1  AAAABBBBBBBBAAAA                      1  \\\\********////
2  AAAAABBBBBBAAAAA                      2  \\\\\******/////
3  AAAAAABBBBAAAAAA                      3  \\\\\\****//////
4  AAAAAAABBAAAAAAA                      4  \\\\\\\**///////
5  AAAAAAAAAAAAAAAA                      5  \\\\\\\\////////

然后我意识到这不会消除伪像,而是变成另一个较小的块(如果我们假设A和B之间的边缘是光滑的),如下所示:

.x→0123456789012345...
y  finale image
↓
0  ****************
1  ****************
2  ****************
3  ****************
4  ***––––––––––***
5  ***∣*********∣***
6  ***∣*********∣***
7  ***∣*********∣***
8  ***∣*********∣***
9  ***∣*********∣***
0  ***∣*********∣***
1  ***––––––––––***
2  ****************
3  ****************
4  ****************
5  ****************

所以我就像“来吧,一定有更好的办法”,来到这里寻求帮助。

0 个答案:

没有答案