Есть ли способ выполнить свертку двух матриц (изображение и маску), разбив маску на 2 меньших порции и объединив результат двух сверток, чтобы получить исходный результат свертки одной маски?
Да, из-за линейности свертки, вы можете разбить вещи как:
I * M = I * (M1 + M2) = I * M1 + I * M2
где M — исходная маска, а M1 и M2 — два меньших фрагмента.
Например, М может быть
M = [ 1 1 2
2 1 3
2 1 8 ]
а также
M1 = [ 0 0 0
0 1 3
0 1 8 ]
M2 = [ 1 1 2
2 0 0
2 0 0 ]
Просто будьте осторожны, что если вы сделаете это, и вы хотите представить M1 как меньший,
M1 = [ 1 3
1 8 ]
что вы должны выровнять их должным образом, прежде чем добавлять их обратно вместе.
Других решений пока нет …