0
如果我採取2個二進制圖像(像素值0或255)並比較他們與比較/ countNonZero,然後與兩個嵌套循環,我不會得到相同的「分數」。比較/ countNonZero返回較大的值,然後預期
因此,首先我使用此代碼:
compare(mat1, mat2, mat_tmp, CMP_EQ);
score = countNonZero(mat_tmp);
,然後將此:
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);
}
}
和得分值是顯著不同(例如比較/ countNonZero得分= 206 814和嵌套循環是1022 )。
它不應該一樣嗎?爲什麼這樣?我誤解了一些東西嗎?
你能告訴我一兩件事,請:是不是可以不計0與比較/ countNonZero(所以我得到相同的分數與嵌套循環,但使用比較/ countNonZero)? (目前我看不到它) – carobnodrvo
回答我自己的評論:[multiply](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