teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2019/12/05 03:57

投稿

fana
fana

スコア12229

answer CHANGED
@@ -1,3 +1,5 @@
1
1
  `sad += abs((int)src1_4.at<uchar>(y + j, x + i) - (int)tmp1_4.at<uchar>(j, i));`
2
2
  等の箇所の記述がグレースケール画像を前提とした実装になっているからでしょう.
3
- カラー(複数ch)画像に対してat<uchar>を用いているので,想定とは異なるbyte間の比較が成されてしまっていると思います.
3
+ カラー(複数ch)画像に対してat<uchar>を用いているので,想定とは異なるbyte間の比較が成されてしまっていると思います.
4
+
5
+ 例えば画像が3chである場合,at< cv::Vec3b > 等で画素値を取得して比較するべきです.