こんにちは。
C#でテンプレートマッチングを作成しているんですがうまくいきません。
9x9の格子状の表の中に1~9の数字がランダムに入っています。
□□□ 421
□□□ 中身→ 376
□□□ 958
表は315x315のサイズで2値化処理済みのbmpです。
テンプレートは64x64のサイズで1,2,3~9とそれぞれ2値化しbmpであります。
マッチングを行う下記の部分でうまくいってないせいかマッチングできません。。
表の高さ、幅をHEIGHT,WIDTH、
テンプレートの高さ、幅をTHEGHT,TWIDTH、にしてあります。
それぞれに高さと幅の数値は入力済みです。
このコードの前にテンプレートのピクセルをa[i,j]に、
表のピクセルをb[i,j]に入力してあります。
説明が下手ですがご指導よろしくお願いします。
また、わからない情報が多いと思いますので質問してください。
Q1.真ん中処理部分
Q2.該当箇所の赤枠表示
よろしくお願いします。
C# テンプレートマッチングについて
Re: C# テンプレートマッチングについて
if(a[i,j]==b[i,j])
この部分だけでは分かりません。
ソースをもっと具体的に書いてください。
b[i,j]に入っているのはどちらの表ですか?
この部分だけでは分かりません。
ソースをもっと具体的に書いてください。
表が二つあるということでしょうか?DUO さんが書きました: 9x9の格子状の表の中に1~9の数字がランダムに入っています。
□□□ 421
□□□ 中身→ 376
□□□ 958
表は315x315のサイズで2値化処理済みのbmpです。
b[i,j]に入っているのはどちらの表ですか?
Re: C# テンプレートマッチングについて
表は1つで中身がh2so5 さんが書きました:if(a[i,j]==b[i,j])
この部分だけでは分かりません。
ソースをもっと具体的に書いてください。
表が二つあるということでしょうか?DUO さんが書きました: 9x9の格子状の表の中に1~9の数字がランダムに入っています。
□□□ 421
□□□ 中身→ 376
□□□ 958
表は315x315のサイズで2値化処理済みのbmpです。
b[i,j]に入っているのはどちらの表ですか?
421
376
958
となっています。
a[i,j]にはテンプレートのピクセル値が、b[i,j]には表のピクセル値が入っています。
上記コードの前に
for (int j = 0; j < HEGHT; j++)
for (int i = 0; i < WIDTH; i++)
{
RGB = (iRed + iGreen + iBlue) / 3;
if (RGB < 128)
{
a[i, j] = 0;
}
else
{
a[i, j] = 1;}
}
しきい値の128以下なら黒、128以上なら白という判断をここでさせています。
そして最初の文中にある で比較しようとしているところです。
Re: C# テンプレートマッチングについて
表の中身は
421
376
958
という並びの「画像」という意味でしょうか?
だとすると「9x9の格子状の表」が何なのか分からないのですが。
そしてなぜ if(a[i,j]==b[i,j]) の部分で上手くいっていないと考えているのか
教えてください。
もう一度書きますが、これだけのコードでは判断できません。
できるだけもっと詳しいコードを載せてください。
421
376
958
という並びの「画像」という意味でしょうか?
だとすると「9x9の格子状の表」が何なのか分からないのですが。
そしてなぜ if(a[i,j]==b[i,j]) の部分で上手くいっていないと考えているのか
教えてください。
もう一度書きますが、これだけのコードでは判断できません。
できるだけもっと詳しいコードを載せてください。