在Imag中求Maxima的坐标

2024-09-28 21:37:46 发布

您现在位置:Python中文网/ 问答频道 /正文

背景:
我对使用Python的PIL进行照片处理很陌生,最近发现在现有程序中需要一个基本的照片处理功能。我的程序当前导入的图像(实际上是夜空的高分辨率快照),其中有很大比例的黑色空间(显然)和几个明亮的白色最大值。

问题:
在导入的图像中,找到每个最大值的坐标(如果可能,相对于画布坐标)的最佳方法是什么?

我已经看过PIL文档,并找到了获得某种颜色的像素数的方法,但这当然不能满足我的要求。正如我所说,我对Python的PIL/Photo操作还不熟悉,所以任何关于这方面的帮助都会很棒的!:)


Tags: 方法图像程序功能pil空间快照照片
1条回答
网友
1楼 · 发布于 2024-09-28 21:37:46

有一个getextrema()方法,它返回每个波段使用的最低和最高图像数据。所以为了找到最亮的像素,你首先需要一个图像的灰度拷贝。然后可以迭代图像中的每个像素,并检查每个像素是否具有最高的灰度值:

grayscale = image.convert('L')
minima, maxima = grayscale.getextrema()

for width in image.size[0]:
   for height in image.size[1]:
       if grayscale.getpixel((width, height)) == maxima:
            # So here we have one pixel with the highest brightness.

不管怎样,取决于你实际想要达到的目标,可能会有更简单、更有效的方法。例如,当您要将所有最亮的像素粘贴到黑色背景上时,可以这样做:

^{pr2}$

相关问题 更多 >