Итак, у меня есть этот фрагмент кода
for x in range(x1,x2):
for y in range(y1, y2):
cpixel = pixels[x, y]
if bw:
bw_value = int(round(sum(cpixel) / float(len(cpixel))))
all_pixels.append(bw_value)
title = "Averaged (B&W) Pixel Values"
else:
if lumi:
luma = (0.3 * cpixel[0]) + (0.59 * cpixel[1]) + (0.11 * cpixel[2])
all_pixels.append(luma)
title = "Pixel Luminosity Values"
else:
if round(sum(cpixel)) / float(len(cpixel)) > 100:
all_pixels.append(255)
else:
all_pixels.append(0)
title = "Pixel Binary Transform Values"
взяты и немного изменены отсюда Получение списка значений пикселей из PIL чтобы предоставить список значений пикселей (all_pixels) в пределах ограничивающей области (выбранной пользователем).
Я пытаюсь найти эффективный способ обнаружения изменений в списке после записи серии похожих значений. Поскольку кажется, что в списке перечислены значения пикселей сверху вниз и слева направо. В сценарии, в котором я буду его использовать, у него будет список похожих значений, пока он не попадет в область изображения, где значения затем начнут переключаться назад и вперед, пока значения снова не стабилизируются вокруг нового значения.
Меня интересует отслеживание границы между этими двумя, я хочу определить, где находится эта граница и смещается ли она влево или вправо. Я не могу придумать другого способа, кроме как проверять каждое значение, добавленное к all_pixels, а затем просто отслеживать координаты.
Но даже это кажется довольно схематичным, поскольку даже если я установил одинаковое количество значений до следующего, которое значительно отличается, это будет рассматриваться как существенное изменение, а не просто выброс, после этого значения начинают переключаться между старыми значениями. и новые.
Я предполагаю, что в идеале мне нужно было бы создать какую-то лучшую линию для координат этой граничной области / линии. Мне просто нужны идеи, как подойти к этой проблеме.