【发布时间】:2021-07-13 21:58:06
【问题描述】:
我需要为一组裁剪得很紧的徽标中的每个图像添加一个边框。边框颜色要么与边缘最常用的颜色匹配,要么,如果不同的边缘颜色太多,则应该选择某种边缘颜色的平均值。
这是一个例子。在这种情况下,我希望添加的边框与图像“背景”的颜色相同(在外行意义上使用该术语)。沿边缘的大部分像素都是该颜色,并且只有两种其他颜色,因此决策算法将能够为添加的边框选择相当粗糙的绿色棕褐色(不要说徽标背后的组织有什么不好, 提个醒)。
Pillow 是否有任何功能可以简化此任务?
我找到了显示如何use Pillow to add borders 和如何determine the average color of an entire image 的答案。但是我找不到任何只查看图像边缘并找到主要颜色的代码,然后可以在添加边框的例程中使用该颜色。以防万一有人已经完成了这项工作,请指出我。 (“边缘”表示图像顶部/底部/左侧/右侧边缘的像素带,其高度或宽度将指定为图像总大小的百分比。)
没有给我指出一个解决我的整个问题的要点,是否有 Pillow 例程可以查看边缘和/或计算像素范围内的颜色并将它们放入数组中或其他什么?
我看到here OpenCV 可以添加一个边框,以复制沿所有四个边缘的每个最外层像素的颜色,但这看起来很时髦——我想要一个纯色边框。而且我更愿意坚持使用 Pillow——除非另一个库可以一步完成整个边缘颜色分析和添加边框过程,或多或少,在这种情况下,请指出。
【问题讨论】:
标签: python-3.x image python-imaging-library border