图像颜色转换技术咨询:非白色区域转黑及非黑色边缘转黑(保留图表外观)
图像颜色转换技术咨询:非白色区域转黑及非黑色边缘转黑(保留图表外观)
看起来你是想把图表里那些非黑色的边缘线条统一改成黑色,但又不想破坏原本图表的线条粗细、形状这些核心外观对吧?之前用-threshold的方式之所以会变样,是因为阈值处理会直接把图像粗暴地分成黑白两部分,把原本的灰色过渡、细线条细节都抹掉了,自然就偏离了原本的图表样子。
给你几个精准处理的ImageMagick命令,既能把非黑边缘转黑,又能完整保留图表的原始外观:
方法一:精准替换非白非黑的所有颜色
这个命令会保留纯白和纯黑区域,把剩下的所有颜色(也就是你要处理的非黑边缘)统一换成黑色:
convert <你的输入图片路径> -fill black +opaque white +opaque black <你的输出图片路径>
原理很简单:+opaque white让白色背景完全不受影响,+opaque black保留原本的黑色线条,剩下的所有杂色/非黑边缘都会被替换成黑色。
方法二:带颜色偏差容错的替换
如果你的边缘颜色和纯黑有一定偏差(比如浅灰、暗灰这类接近黑色的色调),可以加上-fuzz参数扩大匹配范围,避免漏处理:
convert <你的输入图片路径> -fuzz 15% -fill black +opaque white +opaque black <你的输出图片路径>
-fuzz 15%表示允许颜色有15%的偏差范围,你可以根据实际图片的颜色情况调整这个数值(比如从10%开始试,慢慢往上加直到效果满意),这样那些接近黑色的边缘杂色也会被精准替换掉,同时不会影响白色背景和原本的黑色线条。
测试的时候建议先拿一张小图或者复制原图测试,避免误改原图哦。
备注:内容来源于stack exchange,提问作者Simd
相关产品推荐
相关产品推荐

