File size: 478 Bytes
8c513e9
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import numpy as np
from sklearn.cluster import KMeans

def uniform_sampling(pixels: np.ndarray, sample_size: int) -> np.ndarray:
    if sample_size >= len(pixels):
        return pixels
    indices = np.random.choice(len(pixels), sample_size, replace=False)
    return pixels[indices]

def weighted_kmeans(pixels: np.ndarray, sample_size: int) -> np.ndarray:
    kmeans = KMeans(n_clusters=sample_size, random_state=42)
    kmeans.fit(pixels)
    return kmeans.cluster_centers_