【发布时间】:2011-11-08 20:17:30
【问题描述】:
我被要求编写一个程序来查找图像中的“星星”,方法是将图像文件转换为 numpy 数组并生成图像中高于指定阈值的最亮像素的坐标数组(表示背景干扰)。 一旦我找到了图像中最亮的像素,我必须记录它的 x,y 坐标,并将该像素和周围 10X10 像素区域的值设置为零,从而有效地从图像中移除星星。 我已经有一个将图像转换为数组的帮助代码,并试图解决以下问题;
我已经定义了一个变量
Max = array.max()
并使用了一个while循环;
while Max >= threshold
coordinates = numpy.where(array == Max) # find the maximum value
但是我希望它循环遍历整个数组的所有坐标,而不仅仅是找到第一个最大值,并且在找到时删除每个最大值并将周围的 10X10 区域设置为零。我曾考虑过使用 for 循环来执行此操作,但由于我是 Python 新手,我不确定应该如何使用它。
如果有任何建议,我将不胜感激, 谢谢
【问题讨论】:
-
图片格式是什么?这似乎是一个已经解决的问题。例如见tdc-www.harvard.edu/wcstools/imstar。