Je souhaite réduire la taille d'une image en utilisant Python
array([2, 3, 5, 6, 8, 9])
me donne une image représentant 50% de l'original car la taille de pas de la tranche est de 2. Comment puis-je la faire disons 90% de l'original?
La tranche régulière de python ne m'a pas aidé. Il semble que je ne sais pas comment découper une liste, donc il me renverra par exemple, les éléments 2ème, 3ème, 5ème, 7ème etc. Disons que j'ai quelque chose comme:
array([1, 3, 5, 7, 9])
L'exécution du code ci-dessus me donne:
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) arr[::2]
Cependant, je veux l'opposé de ce résultat:
import numpy as np from skimage import io img = io.imread('img.jpg') smallImg = img[::2, ::2]
3 Réponses :
Pour obtenir un tableau ([2, 3, 5, 6, 8, 9]) Vous devez modifier le code pour: arr = np.array ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) arr [1: -1: 2] j'ai oublié l'étape précédente
Les index négatifs commencent à partir du dernier élément Ainsi, l'élément indexé -1 est le dernier (10) Et l'élément indexé - 2 est avant le dernier (9) et ainsi de suite
Cela ne donne pas array ([2, 3, 5, 6, 8, 9]). Il donne à la place un tableau ([2, 3, 4, 5, 6, 7, 8, 9]).
Je l'ai édité, réessayez Je suis loin de mon pc en ce moment
Utilisez cette méthode de découpage
arr[1:3,4:6,7:9]...
Ou vous pouvez découper la liste 2 valeurs à la fois, la stocker dans une variable différente et ajouter ou étendre la liste ensemble.
p>
nous pouvons facilement y parvenir en spécifiant des valeurs d'index correctes:
In [59]: res Out[59]: array([2, 3, 5, 6, 8, 9])
résultat:
res = arr[np.arange(len(arr)) % 3 != 0]
Savez-vous ce que signifient les champs entre
:
?Double possible de Ignorer chaque nième index du tableau numpy
arr [np.mod (np.arange (arr.size), 3)! = 0]
vous donnerait la sortie souhaitéeCopie possible de Comprendre la notation de tranche
Compte tenu de ce pour quoi vous voulez utiliser le découpage: pour le redimensionnement de l'image, sauter des pixels semble inapproprié. Mieux vaut rechercher des méthodes d'interpolation adaptées ...
Que dois-je faire lorsque quelqu'un répond à ma question?