Python 查找图像中最亮像素的坐标并将其输入数组

Python 查找图像中最亮像素的坐标并将其输入数组,python,numpy,Python,Numpy,我被要求编写一个程序,通过将图像文件转换为numpy数组,并生成图像中高于指定阈值(表示背景干扰)的最亮像素坐标数组,来查找图像中的“星星”。 找到图像中最亮的像素后,我必须记录其x、y坐标,并将该像素和周围10X10像素区域的值设置为零,从而有效地从图像中删除星星。 我已经有了一个助手代码,可以将图像转换为数组,并尝试解决以下问题: 我定义了一个变量 Max = array.max() 使用了一个while循环 while Max >= threshold

我被要求编写一个程序,通过将图像文件转换为numpy数组,并生成图像中高于指定阈值(表示背景干扰)的最亮像素坐标数组,来查找图像中的“星星”。 找到图像中最亮的像素后,我必须记录其x、y坐标,并将该像素和周围10X10像素区域的值设置为零,从而有效地从图像中删除星星。 我已经有了一个助手代码,可以将图像转换为数组,并尝试解决以下问题:

我定义了一个变量

    Max = array.max()
使用了一个while循环

    while Max >= threshold
        coordinates = numpy.where(array == Max) # find the maximum value
但是,我想让它在整个数组中循环所有坐标,不仅找到第一个最大值,而且在找到最大值时删除每个最大值,并将周围的10X10区域设置为零。我曾考虑过使用for循环来实现这一点,但我不确定应该如何使用它,因为我是Python新手

如果有任何建议,我将不胜感激, 谢谢

我会为您做这件事:

如果你有天文成像的天空与天体坐标 如果您不知道或不信任Astrometry.net,那么Astrometry.net将为您服务。输入 一张图像,我们会还给你天文校准元数据, 加上落在视野内的已知对象列表

我们建立了这个天体测量校准服务来创建正确的, 符合标准的天体测量元数据,适用于所有有用的 过去和将来在任何状态下拍摄的天文图像 档案混乱。我们希望这将有助于组织、注释和制作 可搜索世界上所有的天文信息

你甚至不需要将图片上传到他们的网站上。你可以下载。它是根据GPL授权的,并且使用NumPy,因此如果需要,您可以随意使用它


请注意,您需要首先将位图转换为以下格式之一:JPEG、GIF、PNG或FITS图像。

使用numpy等有多种不同的方法

有一种“蛮力”方式:

或者更快的方法

import Image
import numpy as np
import scipy.ndimage

im = Image.open('test.bmp')
data = np.array(im)
threshold = 200
window = 10 # This is the "full" window...
new_value = 0

mask = data > threshold
mask = scipy.ndimage.uniform_filter(mask.astype(np.float), size=window)
mask = mask > 0
data[mask] = new_value

图像格式是什么?这似乎是一个以前解决过的问题。例如,请参见。很抱歉,由于投票次数增加而破坏了您的9001代表。
import Image
import numpy as np
import scipy.ndimage

im = Image.open('test.bmp')
data = np.array(im)
threshold = 200
window = 10 # This is the "full" window...
new_value = 0

mask = data > threshold
mask = scipy.ndimage.uniform_filter(mask.astype(np.float), size=window)
mask = mask > 0
data[mask] = new_value