Добавляя немного к предложению ксеноида, вы хотите создать изображение маски и использовать его для объединения медианного фильтра с оригиналом, так что изменяется только область вокруг линии. Использование изображения emcconville и ImageMagick:
convert img.png \
\( -clone 0 -statistic median 3x3 \) \
\( -clone 0 -fuzz 10% -fill white +opaque black -fill black +opaque white -negate \) \
-compose over -composite \
result.png
Альтернативный, но немного более длительный подход - поместить маску в альфа-канал отфильтрованного изображения, а затем объединить ее с оригиналом, что дает точно такой же результат:
convert img.png \
\( -clone 0 -statistic median 3x3 \) \
\( -clone 0 -fuzz 10% -fill white +opaque black -fill black +opaque white -negate \) \
\( -clone 1 -clone 2 -alpha off -compose copy_opacity -composite \) \
-delete 1,2 \
-compose over -composite \
result.png
К сожалению, в верхнем левом углу между красным и зеленым есть небольшой темный остаток. Я попытался увеличить значение fuzz и размер фильтра, но это не помогло. Я не уверен почему.