this의 반대쪽을 시도하고 있습니다. (연속적인) 강도의 2D 이미지가 주어지면 불규칙하게 간격을 둔 축적 점 세트, 즉 2D 맵을 불규칙하게 덮는 점의 세트를 생성합니다. 고강도 영역에서 서로 가깝게 위치합니다 (, 겹치지 않음!).불규칙한 간격의 누적 점 계산 방법
첫 번째 시도는 "가중치가있는"k- 수단이었습니다. 가중치 k 평균의 작동 구현을 찾지 못했기 때문에, 가중치를 소개하는 방법은 높은 강도의 점을 반복하는 것으로 구성됩니다. 여기 내 코드는 다음과 같습니다.
import numpy as np
from sklearn.cluster import KMeans
def accumulation_points_finder(x, y, data, n_points, method, cut_value):
#computing the rms
rms = estimate_rms(data)
#structuring the data
X,Y = np.meshgrid(x, y, sparse=False)
if cut_value > 0.:
mask = data > cut_value
#applying the mask
X = X[mask]; Y = Y[mask]; data = data[mask]
_data = np.array([X, Y, data])
else:
X = X.ravel(); Y = Y.ravel(); data = data.ravel()
_data = np.array([X, Y, data])
if method=='weighted_kmeans':
res = []
for i in range(len(data)):
w = int(ceil(data[i]/rms))
res.extend([[X[i],Y[i]]]*w)
res = np.asarray(res)
#kmeans object instantiation
kmeans = KMeans(init='k-means++', n_clusters=n_points, n_init=25, n_jobs=2)
#performing kmeans clustering
kmeans.fit(res)
#returning just (x,y) positions
return kmeans.cluster_centers_
다음은 두 가지 결과입니다. 1) 모든 데이터 픽셀을 사용합니다. 2) 일부 임계 값 (RMS) 이상의 픽셀 만 사용합니다.
당신이 포인트를 볼 수있는
높은 강도의 영역에 집중보다 더 정기적으로 이격 될 것으로 보인다.내 질문은 이러한 누적 포인트를 계산할 때 (가능한 경우 결정적) 더 나은 방법이있는 경우입니다.
감사합니다. 좋은 아이디어입니다. 나는이 방법을 연구하고 그것을 나의 요구 사항에 맞추려고 노력할 것이다. – mavillan