【发布时间】:2017-12-26 09:01:10
【问题描述】:
我在 python 2.7 中有一个 numpy 数组,我使用 imshow() 函数对其进行可视化。生成数组的代码如下:
from pylab import *
r0 = 3.0
S0 = 10.0
x = zeros((101,101))
noiseimg = zeros((101,101))
for i in range(101):
for j in range(101):
noiseimg[i,j] = noiseimg[i,j] + normal(3,1)
mean_i = randint(0,101)
mean_j = randint(0,101)
for i in range(101):
for j in range(101):
r = ((i-mean_i)**2 + (j-mean_j)**2)**0.5
x[i,j] = S0*(1+(r/r0)**2)**-1.5
x[i,j] = x[i,j] + noiseimg[i,j]
if (((i-50)**2 + (j-50)**2)**0.5 >= 40) and (((i-50)**2 + (j-50)**2)**0.5 <= 41):
x[i,j]=0
imshow(x)
show()
它的作用是生成具有一定背景噪声水平和一个圆形对称源的图像。图像中心有一个圆,半径为 40 像素。
我需要知道的是如何找到该圆圈内最高值像素的位置。我知道如何找到圆圈中的最大值,但不知道它的[i,j] 位置。
谢谢!
stackoverflow 已将我的问题标记为potential duplicate,但这不包含我需要的位置限制。
【问题讨论】:
-
你用什么方法求圆的最大值?
-
我有一个开始为空的列表,然后 for 循环遍历数组,将每个值附加到列表中,跳过圆圈外的值。然后打印该列表中的最大值。
-
如果我理解正确的话,我会发布一个应该有效的答案。告诉我,我会做出相应的调整。
标签: python arrays python-2.7 numpy