【发布时间】:2011-12-23 21:51:33
【问题描述】:
我们正在尝试在 Mathematica 中执行以下操作 - RMagick remove white background from image and make it transparent。
但是对于实际照片,它最终看起来很糟糕(比如图像周围有一个光环)。
这是我们迄今为止尝试过的:
unground0[img_] := With[{mask = ChanVeseBinarize[img, TargetColor->{1.,1.,1.}]},
Rasterize[SetAlphaChannel[img, ImageApply[1-#&, mask]], Background->None]]]
这是一个例子。
原图:
将白色背景替换为无背景的图像(或者,出于演示目的,此处为粉红色背景):
有摆脱那个光环的想法吗?调整 LevelPenalty 之类的东西,我只能以丢失一些图像为代价让光环消失。
编辑:所以我可以比较赏金的解决方案,请像上面那样构建您的解决方案,即一个名为 unground-something 的自包含函数,它获取图像并返回具有透明背景的图像。
【问题讨论】:
-
非常感谢大家到目前为止的帮助!一旦stackoverflow让我添加一个,就会有大赏金。而且,根据创始人所阐述的 stackoverflow 精神,您应该随意互相窃取以使您的答案成为最终答案!
-
前 500 个赏金,然后“我鼓励你们大家互相借用,以尽可能改进它!” ——你想要一场狗斗,不是吗?
-
@Mr.Wizard,:) 我不是在编造,创始人(杰夫和乔尔)从一开始就说过这是鼓励的。这个想法是让最佳答案成为一个真正完整和明确的答案。 (显然我在这种情况下也别有用心!)
-
对于过度好奇的人,这是宜家的“FREDRIK”电脑工作站:ikea.com/us/en/catalog/products/60111123
-
@dreeves,我用过tineye.com。
标签: image image-processing wolfram-mathematica masking