テンプレートマッチングの一致度を求める問題です

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
utcnii
記事: 5
登録日時: 7年前

テンプレートマッチングの一致度を求める問題です

#1

投稿記事 by utcnii » 7年前

C言語のプログラミングについての質問です。テンプレートマッチングについて
テンプレートデータTと入力データDの一致度Cを計算するプログラムを作成しろという問題です。

C=(1/i・j)×ΣTij・Dij

で与えられています。Tijはテンプレートの画素(i,j)の値でDijは入力データ画素(i,j)の値です。画像データが2値画像で、黒を1、白を-1とします。画像は3×3の大きさです。

テンプレートデータTは
-1 1 -1
-1 1 -1
-1 1 -1

で与えられています。
入力データDは実行時に入力するします。Cを求めるプログラムを作成しろというのが問題です。
このプログラムでは答えが一致しません。どこが間違えているのでしょうか?よろしくお願いします。

コード:

#include <stdio.h>

int main(void)
{
int T[3][3]={
	{-1,1,-1},
	{-1,1,-1},
	{-1,1,-1}
};

int a,b,c,d,e,f,g,h,i;

int D[3][3]={
	{a,b,c},
	{d,e,f},
	{g,h,i}
};

printf("aを入力");
scanf("%d",&a);
printf("bを入力");
scanf("%d",&b);
printf("cを入力");
scanf("%d",&c);
printf("dを入力");
scanf("%d",&d);
printf("eを入力");
scanf("%d",&e);
printf("fを入力");
scanf("%d",&f);
printf("gを入力");
scanf("%d",&g);
printf("hを入力");
scanf("%d",&h);
printf("iを入力");
scanf("%d",&i);

int x,y;
int sum=0;
double C;

for(x=0;x<3;x++){
	for(y=0;y<3;y++){
		sum+=T[x][y]*D[x][y];
	}
}
C=(1.0/(x*y))*sum;

printf("C=%.2f\n",C);

return 0;
}

“C言語何でも質問掲示板” へ戻る