Я предполагаю, что предопределенные шаги находятся на горизонтальной оси, скажем, оси x, и, поскольку размер шага задан, вы можете начать с самого левого пикселя выбранной пользователем области. Для любого конкретного значения x вы обрабатываете изображение от нижней границы вверх и определяете цвета. Каждый из этих цветов будет иметь распределение (т. Е. Не только на один пиксель для данного x), и я рекомендую взять среднее значение этого распределения.
Конечно, вы должны повторять это до тех пор, пока следующий шаг в направлении x не окажется за пределами выбранной пользователем области. Теперь вам нужно только настроить механизм определения цвета, а именно разрешить небольшой диапазон цветов вместо чистого красного или синего и т. Д., Но это совсем другая (хотя и не такая сложная) проблема.
Еще одна вещь, это может быть то, что при данном значении х два графика перекрываются, и один может не быть видимым. В этом случае вы можете немного увеличить x и попробовать еще раз, и если вы обнаружите его в этом x, вы легко сможете определить, за каким другим графиком он находится в предыдущем x.
Удачи