Utilisez la corrélation normalisée pour déterminer une correspondance des modèles.
@Daniel, la solution de Daniel est bonne pour exploiter vos multiples processeurs. Il ne mentionne pas une métrique de qualité qui serait utile et je voudrais suggérer une métrique de qualité très courante dans le traitement d'image.
Je suggère d'utiliser normalized correlation [1] comme métrique de comparaison, car elle génère un nombre compris entre -1 et +1. Lorsque 0 n'est pas une corrélation, 1 serait sortie si les deux modèles étaient identiques et -1 serait si les deux modèles étaient exactement opposés. Une fois que vous avez calculé la corrélation normalisée, vous pouvez tester si vous avez trouvé le modèle en faisant threshold test ou un test de crête à moyenne [2].
[1 - footnote] Comment implémentez-vous la corrélation normalisée? C'est assez simple et il n'y en a que deux pour les boucles.Une fois que vous avez une implémentation qui est assez bonne, vous pouvez vérifier votre implémentation en vérifiant si l'image identique vous obtient un 1.
[2 - footnote] Vous faites le ratio du max (array)/average (array_without_peak). Puis seuil pour vous assurer que vous avez un bon ratio entre le pic et la moyenne.
Je voulais dire en rotation de mémoire parce que l'indexation différente pour différents threads utilisant le même code deviendrait un peu désordonné ... –
Je me référais aussi à la rotation en mémoire. L'utilisation de la classe dans le lien dans le post rendra le code beaucoup plus simple, juste un paramètre de rotation pour chaque instance du thread de traitement. Cela dit, la rotation de la matrice 5x5 est encore plus efficace. – Skizz