W Mathematica staramy się wykonać następujące czynności - RMagick usunąć białe tło z obrazu i uczynić go przezroczystym .
Ale w przypadku rzeczywistych zdjęć kończy się to kiepskim wyglądem (jak otoczka wokół obrazu).
Oto, czego próbowaliśmy do tej pory:
unground0[img_] := With[{mask = ChanVeseBinarize[img, TargetColor->{1.,1.,1.}]},
Rasterize[SetAlphaChannel[img, ImageApply[1-#&, mask]], Background->None]]]
Oto przykład tego, co to robi.
Oryginalny obraz:
Obraz z białym tłem zastąpionym bez tła (lub, dla celów demonstracyjnych, z różowym tłem):
Jakieś pomysły na pozbycie się tej aureoli? Poprawiając takie rzeczy jak LevelPenalty, mogę tylko usunąć aureolę kosztem utraty części obrazu.
EDYCJA: Więc mogę porównać rozwiązania dla nagrody, proszę ustrukturyzować twoje rozwiązanie jak powyżej, a mianowicie samodzielną funkcję o nazwie unground - coś, co pobiera obraz i zwraca obraz z przezroczystym tłem.