2 ikili görüntü (piksel değerleri 0 veya 255) alır ve bunları karşılaştırın/sayınNonZero ile karşılaştırırsam ve iki iç içe döngü ile aynı "puanı" alamıyorum. Sonrakarşılaştır/countNonZero daha büyük bir değer daha sonra beklenen
compare(mat1, mat2, mat_tmp, CMP_EQ);
score = countNonZero(mat_tmp);
ve bu:
Bu nedenle ilk önce bu kodu kullanın
for (int x = 0; x < mat1.cols; ++x)
{
for (int y = 0; y < mat2.rows; ++y)
{
Scalar s1 = mat1.at<uchar>(y,x);
Scalar s2 = mat2.at<uchar>(y,x);
score += (s1.val[0]/255)*(s2.val[0]/255);
}
}
ve örneğin countNonZero puanı = 206 814 ve için iç içe döngüler 1022/karşılaştırma (değerler önemli ölçüde farklıdır skor).
Aynısı olmamalıdır? Neden böyle? Bir şeyi yanlış anlamış mıyım?
Eğer bir şey daha lütfen söyler misiniz: o/countNonZero karşılaştırmak ile 0 saymak değil mümkündür (yani birlikte aynı puanı almak yuvalanmış döngüler ama karşılaştırma/countNonZero kullanarak? (Şu anda göremiyorum) – carobnodrvo
Kendi yorumumu yanıtlamak için: [çarp] (http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#void%20multiply%28InputArray% 20src1,% 20InputArray% 20src2,% 20OutputArray% 20dst,% 20double% 20scale,% 20int% 20dtype% 29) – carobnodrvo