解決策を考えました。referenceImageMask と templateMask の良いピクセルには 1 があり、悪いピクセルには 0 があると仮定します。また、その referenceImage と templateImage は既にマスクされており、不良ピクセルにも 0 が含まれています。
次に、テンプレート マッチングの最初の結果は、画像間の正規化されていない相互相関を示します。
2 番目のテンプレート マッチングでは、可能なオフセットごとに、両方の画像で同時にゼロとは異なる (マスクされていない) ピクセル数が示されます。
次に、その数値で相関を正規化すると、必要な値が得られます。両方の画像でマスクされていないピクセルの平均積。
Image<Gray, float> imCorr = referenceImage.MatchTemplate(templateImage, Emgu.CV.CvEnum.TM_TYPE.CV_TM_CCORR);
Image<Gray, float> imCorrMask = referenceImageMask.MatchTemplate(templateMask, Emgu.CV.CvEnum.TM_TYPE.CV_TM_CCORR);
imCorr = imCorr .Mul(imCorrMask .Pow(-1));