我有一张3000*3000像素的图片。我首先找到我感兴趣区域的中心,比如说在位置(10002000)。我想用R1=10像素,R2=20像素来提取环空内的数据,并找到环空内数据的模式。是否有任何python例程可以做到这一点,或者有任何聪明而简洁的方法来实现它?我知道photutils.aperture_photometry可以得到环的和,但不能得到每个像素上的任何单个数据点。

import numpy as np
data = np.random.uniform(0,10,size=(3000,3000))
center = (1000,2000)    #### in pixel space
R1 = 10   #### pixels
R2 = 20   #### pixels
....

最佳答案

没有任何答案。。。。。。惊讶的。我有非常简单的两个循环函数来实现这一点。

imin = center[0] - R2
imax = center[0] + R2 + 1
jmin = center[1] - R2
jmax = center[1] + R2 + 1
target = []
for i in np.arange(imin, imax):
    for j in np.arange(jmin, jmax):
        ij = np.array([i,j])
        dist = np.linalg.norm(ij - np.array(center))
        if dist > R1 and dist <= R2:
            target.append([i,j,data[i][j]])
target = np.array(target)

有更好的实施吗?

关于python - 从半径为R1和R2的环形空间内的图像中提取数据点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43649805/

10-12 20:38