The recursive loops in my source codes, what's wrong with it?
Using nrutil.h for matrix functions.
for(i=1; i<=IMAGE_HEIGHT; i++)
{
for(j=1; j<=IMAGE_WIDTH; j++)
{
SourceImage[j] = pBufArray[k];
k++;
}
}
AssignImage(SourceImage, LeftImage, RightImage);
SSD(LeftImage, RightImage);
void AssignImage(int **SourceImage, int **LeftImage, int **RightImage)
{
int i, j;
for(i=1; i<=IMAGE_HEIGHT; i++)
{
for(j=1; j<=HALF_WIDTH; j++)
{
// LeftImage[j] = SourceImage[j];
RightImage[j] = SourceImage[j+HALF_WIDTH];
}
}
}
void SSD(int **LeftImage, int **RightImage)
{
int j, Disparity;
for(j=Border; j<=HALF_WIDTH-Border; j++)
{
long Diff, SquaredDiff, SumSquaredDiff=0, MinSSD;
int p, q, k;
for(k=-DISP_RANGE; k<=DISP_RANGE; k++)
{
for(p=TestRow-2; p<=TestRow+2; p++)
{
for(q=j-2; q<=j+2; q++)
{
Diff = LeftImage[p][q] - RightImage[p][q+k];
SquaredDiff = Diff * Diff;
SumSquaredDiff = SumSquaredDiff + SquaredDiff;
if(MinSSD>SumSquaredDiff)
{
MinSSD = SumSquaredDiff;
Disparity = k+HALF_WIDTH;
}
}
}
}
}
printf("\nThe disparity is %ld\n", Disparity);
}