在C语言中解决边界问题

在C语言中解决边界问题,c,matrix,boundary,C,Matrix,Boundary,我正在编写一个使用均值滤波器的图像平滑程序,但我似乎无法解决最后两个边界问题。我用整数代替图像。我已经为1个左角返回了正确的值,以及中间整数、左侧整数和顶部和底部整数。目前,我被困在右边的一组整数上,导致边界问题 void side2(int a[10][20], int c[10][20], int m, int n) { int i,j; for (i=1;i<m-1;i++) { for (j=0;j<n-1;j++) {

我正在编写一个使用均值滤波器的图像平滑程序,但我似乎无法解决最后两个边界问题。我用整数代替图像。我已经为1个左角返回了正确的值,以及中间整数、左侧整数和顶部和底部整数。目前,我被困在右边的一组整数上,导致边界问题

void side2(int a[10][20], int c[10][20], int m, int n)
{
    int i,j;
    for (i=1;i<m-1;i++) {
        for (j=0;j<n-1;j++) {
            c[i][j]=(0+0+a[i-1][j]+a[i+1][j]+a[i][j+1])/3;        
        }         
    } 
}

您需要在无法进行筛选的边界上写入一些内容。目前,你没有写任何东西,例如,
c[1][n-1]
,所以你只是得到了未初始化的垃圾。

我尝试过,设置i=0会产生相同的结果。你的意思是:
c[i][n-1]=(0+0+a[i-1][j]+a[i+1][j]+a[i][j+1])/3。这给了我很好的格式,但它没有进行下面的计算。我的意思是像函数开头的
for(inti=0;I
。或者初始化不是由主循环写入的
c
项的任何其他内容。设置c[i][n-1]解决了问题,最初我输入的平均值计算不正确。谢谢你的帮助!
please enter number of columns and rows
5 5
66  49  74  73  44
47  73  69  27  97
96  63  79  68  35
82  86  28  22  14
59   3  24   5  22
The smoothed image is
48  71  63  482009141880
78  60  60  79764514
64  79  55  28696626048
80  31  41  29  19
42  56  12  222009815