我正在用C++寫一些圖像過濾代碼,但是在創建代碼時,我收到一個錯誤,如「向量訂閱超出範圍」。我追溯了當地人,但無法確定問題所在。我知道的唯一情況是我的過濾操作存在問題。這是我的代碼:矢量訂閱錯誤
int filtersize;
cout << "enter the filter size" ;
cin >> filtersize ;
int a = (filtersize-1)/2, i=a, j=a;
vector <vector<int>> filter (filtersize, vector <int>(filtersize, 0));
vector <vector<int>> filtered (countRow, vector <int>(countCol, 0));
int avg=0;
int average=0;
for(int x=0; x< mat.size(); x++)
{
for(int y=0; y< mat[0].size(); y++)
{
for (int m=-a; m<=a; m++)
{
for(int n=-a; n<=a; n++)
{
if(y + n >= 0 &&
x + m >= 0 &&
y + n <= mat[0].size() &&
x + m <= mat.size())
{
avg = avg + mat[x+m] [y+n];
}
}
}
average = avg/(filtersize * filtersize);
filtered[x][y] = average;
avg = 0;
Print(filtered);
}
}
mat
矩陣是程序的輸入矩陣。