Я работаю над сглаживанием изображения с использованием медианного фильтра.Для этого я не использую встроенные функции в библиотеке Python, а пишу свои собственные функции.Следующий код предназначен для вычисления медианы.
def CalcMedian(Image, x, y, gridSize): #x and y are nested loops, that run over the entire image.
medianList = []
row, col = Image.shape;
k = int(gridSize/2);
for i in range(gridSize-1):
for j in range(gridSize-1):
if (i+x-k)<0 or (j+y-k)<0 or (i+x-k)>row or (j+y-k)>col:
break;
medianList.append(Image[(i+x-k),(j+y-k)]);
medianList.sort();
length = len(medianList);
if length%2 != 0:
return float(medianList[length/2]);
return float((medianList[int((length-1)/2)] + medianList[int(length/2)]) / 2.0);
В последней строке я получаю сообщение об ошибке.
IndexError: список индексов выходит за пределы диапазона
Я не могу понять, в чем проблема, поскольку это стандартный код, используемый для поиска медианы, и я не понимаю, где именно индекс будет вне диапазона.