我正在研究一种修补方法来处理图像。因此,结果会出现块状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 ****************
所以我就像“来吧,一定有更好的办法”,来到这里寻求帮助。