Мы пытаемся сделать следующее в Mathematica - RMagick убрать белый фон с изображения и сделать его прозрачным.
Но с реальными фотографиями это выглядит паршиво (как ореол вокруг изображения).
Вот что мы уже пробовали:
unground0[img_] := With[{mask = ChanVeseBinarize[img, TargetColor->{1.,1.,1.}]},
Rasterize[SetAlphaChannel[img, ImageApply[1-#&, mask]], Background->None]]]
Вот пример того, что это делает.
Исходное изображение:
Изображение с белым фоном заменено без фона (или, для демонстрации, здесь розовый фон):
Есть идеи, как избавиться от этого ореола? Настраивая такие вещи, как LevelPenalty, я могу заставить гало исчезнуть только за счет потери части изображения.
ОБНОВЛЕНИЕ: чтобы я мог сравнить решения для щедрости, пожалуйста, структурируйте ваше решение, как указано выше, а именно автономную функцию с именем unground-что-то, что берет изображение и возвращает изображение с прозрачным фоном.