C# 处理非纯色图片背景
比如图1,是一个特效的图片,其中白色以及蓝色紫色部分其实也有少许黑色存在,直接用C#的MakeTransparent方法只能去除纯黑色,有没有有效的方法可以完美或者稍微完...
比如图1,是一个特效的图片,其中白色以及蓝色紫色部分其实也有少许黑色存在,直接用C#的MakeTransparent方法只能去除纯黑色,有没有有效的方法可以完美或者稍微完美的去除黑色背景?
展开
1个回答
展开全部
你的思路是正确的, 可以接着使用MakeTransparent,去除其他RGB颜色。
图中因为白色、紫色、蓝色和黑色相接的地方会有一些色彩的跳跃, 所以设置将其他的“类似黑色”的色块也给去掉,
你可以尝试去去除(黑色是#000000 )#000000 到#292929 (带一点白色的跳跃)
或者从#000000 到#080808 (带一点蓝色的跳跃)。
这样应该可以进一步消除掉你图片中和白色、蓝紫色相连的黑块。
然后再消除一下噪点(不相连的单独色块,可以网上找一下算法,很多)
但是肯定是没办法全部消除掉的黑色的, 因为你这个是渐变的不规则图形,用算法只能做出个大概样子,能完全做出效果了就是人工智能了。。
图中因为白色、紫色、蓝色和黑色相接的地方会有一些色彩的跳跃, 所以设置将其他的“类似黑色”的色块也给去掉,
你可以尝试去去除(黑色是#000000 )#000000 到#292929 (带一点白色的跳跃)
或者从#000000 到#080808 (带一点蓝色的跳跃)。
这样应该可以进一步消除掉你图片中和白色、蓝紫色相连的黑块。
然后再消除一下噪点(不相连的单独色块,可以网上找一下算法,很多)
但是肯定是没办法全部消除掉的黑色的, 因为你这个是渐变的不规则图形,用算法只能做出个大概样子,能完全做出效果了就是人工智能了。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询