Localize uma imagem de arte ASCII dentro de um corpo de texto com uma certa tolerância para erro

Existem algoritmos que encontrariam a seguinte imagem da arte ASCII?

     +
     +
    +++
  +++++++
  ++   ++
 ++  +  ++
 ++ +++ ++
 ++  +  ++
  ++   ++
  +++++++
    +++

Dentro do corpo de texto a seguir?

arquivo_completo_aqui

              + +    +              ++           +       +++    +     +
 +  ++     +   + ++++    + +       +         +          +  +   +++     +++ +
     +            + +   ++      ++  ++    + ++       +     +      +  +   +
+   ++      +  ++       +          + +       ++        ++  +           +
 ++++++ + +    +   ++  +  +   +   +  ++      +         +                     +
  + +   +      +               +      ++     +  ++            +   +    + +
+++   + ++   +  +            +  +++       + +       ++                     +
  +++++  +      +                            +  + +            +   +  +
 +   +   +              +    +      +            +  +   +      +    +     +
 ++    +              +     +       ++   +          +       +           ++

Devo destacar a imagem da arte ASCII em amarelo, que corresponde à forma completa. Veja a foto em anexo:

Eu tenho que procurar um arquivo que contém a forma aproximada, mas não completamente, um número de+ pode estar faltando). A tolerância para uma falta+ na forma deve ser definido manualmente.

Agora, tenho duas matrizes de dados de matrizes 2D: [100] [100] e a matriz SlimeTorpedo: [13] [11].

Código de como fazer a detecção conforme indicado por @kjartan (3-4 bala):

     int match = 0;
     for (int i = 0; i < 100; i++) {
         for (int j = 0; j < 100; j++) {
             //Compare DataArr[i][j] with SlimeTorpedoArr[i][j]
             //Look for "checked" position in the picture ("+"), 
             //which corresponds to a checked position in the 
             //slime torpedo array.
             //match++;
        }
    }

Qual seria a orientação geral de como abordar esse problema?

questionAnswers(3)

yourAnswerToTheQuestion