Если времени не жалко, то можно попробовать так:
- берём все пары точек, находящихся на разных сторонах квадрата
- каждую такую пару соединяем отрезком, и считаем среднюю яркость на нём (это примерно то же, что и преобразование Хафа, только более специализировано для задачи. И гораздо дольше)
- получается функция от двух переменных. Ищем её максимум - это самая яркая царапина.
- просматриваем параллельные прямые в окрестности, ищем ширину пика (ширина царапины)
- заменяем точки на найденной царапине линейной интерполяцией ближайших точек, лежащих за её пределами. Или просто помечаем точки полосы как некорректные, и идём дальше.
- убираем этот пик на двумерной функции, переходим к следующему максимуму.
- после того, как удалили 10 (или 50, или 100) царапин, показываем картинку, и спрашиваем, продолжать ли.
- если продолжать - пересчитываем функцию заново.
Основным вопросом будет "как считать ширину пика". Я не знаю, надо смотреть конкретные графики.