平均フィルターを使用する画像平滑化プログラムを作成していますが、最後のいくつかの境界の問題を修正できないようです。画像の代わりに整数を使用しています。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;
}
}
}
これは右辺を計算する関数であり、どちらの角も計算しません。
これが私が得る出力です。ユーザーは、列と行に数値を入力するように求められます。これにより、乱数生成されたマトリックスが出力され、続いて平均フィルターの結果を含む平滑化された画像が出力されます。ご覧のとおり、右側は奇抜で、境界の正しい値を見つけることができないようです。誰かが正しい境界を見つけるのを手伝ってくれますか?
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