my_list = [] for x in range(len(imgbinary)): for y in range(len(imgbinary[0])): if imgbinary[x][y]==255 : my_list.append(imggray[x][y]) my_list.sort() I want this code to be as fast as possible, I'm sure using numpy would be way better.
3 Réponses :
STI
my_list = imggray[imgbinary == 255]
Je pense que vous lisez trop vite. Il devrait être myList = imggray [imgbinary == 255] code>.
Mais j'ai besoin des valeurs de imggray
Je vais tester ceci: "MyList = imggray [imgbinary == 255]"
oh ok imggray est là alors
Hé, vous avez tort lorsque vous dites que le tri est inutile car les valeurs sont égales. C'est des données d'image en niveaux de gris, non binaire.
Vous pouvez également essayer np.where code>:
basé sur votre code, vous souhaitez obtenir les valeurs de Cela devrait fonctionner correctement sans boucle utilisée: p> vitesse de 20 x 20 Images: strong> p> imggray code> dans les positions de pixels où
imgbinary code> est égal à 255.
%timeit sorted(imggray[imgbinary ==255])
10000 loops, best of 3: 111 µs per loop