【问题标题】:Using PIL in Python 2.7, iterate through pixels and check their luminescence在 Python 2.7 中使用 PIL,遍历像素并检查它们的发光
【发布时间】:2016-05-26 07:13:04
【问题描述】:
我正在编写一个程序来获取图像的轮廓。到目前为止,这是输出:
我希望它只有黑色和白色。我需要遍历每个像素,如果像素的发光量高于一定量,则将该像素设置为纯白色,否则将其设置为黑色。
我最近才开始学习 PIL,所以我还不确定如何遍历像素或检查它们的发光。
【问题讨论】:
标签:
python
image
image-processing
python-imaging-library
【解决方案1】:
从字面上回答您的问题,您可以使用PIL 将函数应用于您的每个像素。
from PIL import Image
image = Image.open('pawn.png')
thresh = 120 # Change at your discretion
image = image.point(lambda i: 255 if i > thresh else 0)
这将产生黑色背景和白色轮廓。如果你想反过来,只需将最后一行的 255 和 0 交换即可。
如果您想找到该对象的更详细的轮廓,您可能需要了解如何锐化图像并将其应用到精巧的边缘检测。对于这些类型的操作,我会推荐skimage (scikit-image) 或opencv2