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