我有一个正方形的图像,例如这个:
我想从位置(0,0)计算出每个半径的图像的1D平均值。我已经写了一些代码来实现这一点,但首先它非常慢,即使是对于小图像,其次我看到它背后的想法也有一些问题。代码在这里:import matplotlib.pyplot as plt
import numpy as np
import collections
from skimage import data
image = data.coins()
image = image[:,0:303]
print(image.shape)
projection = {}
total_count = {}
for x_i,x in enumerate(image):
for y_i,y in enumerate(x):
if round(np.sqrt(x_i**2+y_i**2),1) not in projection:
projection[round(np.sqrt(x_i**2+y_i**2),1)] = y
total_count[round(np.sqrt(x_i**2+y_i**2),1)] = 1
elif np.sqrt(round(np.sqrt(x_i**2+y_i**2),1)) in projection:
projection[round(np.sqrt(x_i**2+y_i**2),1)] += y
total_coun