画像の合成プログラム
現在、飛行機の羽の左側と、右側の羽で撮った2枚の航空写真を合成するプログラムを作っています。これらの画像には若干のずれがあり、合成するには、左の写真に写っている場所と対応する同じ点を右側の写真から探索する必要があります。今の段階で作っているプログラムでは全ての点を走査することができず、画像の一部だけしか走査されません。
以下のプログラムをどのように変更したら、画像全体を走査できるかアドバイスください。お願いします。
/*対応点の探索*/
for (x = 0; x < 512; x+=25) {
for (y= 0; y < 512; y+=25) {
for (i = 0; i < 30; i++) {
for (j = 0; j < 30; j++) {
block1[i][j] = image1[x - 30 / 2 + i][y - 30 / 2 + j];
}
}
min = 99999;
x1 = x*2;
if(x1 > 512){
x1 = 512;
}
y1 = y*2;
if(y1 > 512){
y1 = 512;
}
for (i = 30 / 2; i < x1 - 30 / 2; i++) {
for (j = 30 / 2; j < y1- 30 / 2; j++) {
sa = 0;
for(k = 0; k < 30; k++) {
for(l = 0; l < 30; l++) {
sa += abs(block1[k][l] - image2[i - 30 / 2 + k][j - 30 / 2 + l]);
}
}
if (min > sa) {
min = sa;
min_i = i;
min_j = j;
}
}
}
if(x-15 < min_i && min_i < x+15){
if(y-15 < min_j && min_j < y+15){
printf("File_1の座標点( %d, %d )の対応点は ( %d, %d ) である。\n",y,x, min_j, min_i);
}
}
}
}
return 0;
}
お礼
ありがとうございました。Jトリムの使い方をあっちこっち見たつもりだったのですが、探し切れていませんでした。おかげで犬が収まりました。(^^)