


Comment redimensionner, recadrer, faire pivoter et retourner des images en Python
Redimensionner, recadrer, faire pivoter et retourner les images
Tout d'abord, nos images originales sont 10 images de différentes tailles téléchargées depuis Internet, comme suit :
from PIL import Image
import torchvision.transforms as transforms
#使用PIL库读入图片并进行resize
def ResizeImage():
if not os.path.exists(rdir):
os.makedirs(rdir)
for i in range(10):
im = Image.open(dir+str(i)+".jpg")
im = im.resize((320,240),Image.BILINEAR) #第一个参数为想要的size,第二个参数为插值方法,双线性插值这里用的是
im.save('{}/{}.jpg'.format(rdir, i))
Copier après la connexion
Opération 2 : Recadrage (y compris le recadrage autour du centre et le recadrage aléatoire)from PIL import Image import torchvision.transforms as transforms #使用PIL库读入图片并进行resize def ResizeImage(): if not os.path.exists(rdir): os.makedirs(rdir) for i in range(10): im = Image.open(dir+str(i)+".jpg") im = im.resize((320,240),Image.BILINEAR) #第一个参数为想要的size,第二个参数为插值方法,双线性插值这里用的是 im.save('{}/{}.jpg'.format(rdir, i))
#图像随机剪裁和中心剪裁
def crop(lib):
for i in range(10):
img = Image.open(lib+"/"+str(i)+".jpg")
CenterCrop = transforms.CenterCrop((240,320)) #中心裁剪
cropped_image = CenterCrop(img) #PIL.Image.Image
# im=np.array(cropped_image) #可以将PIL.Image.Image转成ndarry
#cropped_image.show() #将图片显示
cropped_image.save('{}/cen_crop{}.jpg'.format(rdir, i))
RandomCrop = transforms.RandomCrop(size=(240, 320)) #随机剪裁
random_image = RandomCrop(img)
random_image.save('{}/rand_crop{}.jpg'.format(rdir, i))
Copier après la connexion
Opération 3 : Rotation aléatoire#图像随机剪裁和中心剪裁 def crop(lib): for i in range(10): img = Image.open(lib+"/"+str(i)+".jpg") CenterCrop = transforms.CenterCrop((240,320)) #中心裁剪 cropped_image = CenterCrop(img) #PIL.Image.Image # im=np.array(cropped_image) #可以将PIL.Image.Image转成ndarry #cropped_image.show() #将图片显示 cropped_image.save('{}/cen_crop{}.jpg'.format(rdir, i)) RandomCrop = transforms.RandomCrop(size=(240, 320)) #随机剪裁 random_image = RandomCrop(img) random_image.save('{}/rand_crop{}.jpg'.format(rdir, i))
#随机旋转
def random_rotation(lib):
for i in range(10):
img = Image.open(lib+"/"+str(i)+".jpg")
RR = transforms.RandomRotation(degrees=(10, 80)) #degrees为随机旋转的角度
rr_image = RR(img)
rr_image.save('{}/rand_rotation{}.jpg'.format(rdir, i))
Copier après la connexion
Opération 4 : Retourner#随机旋转 def random_rotation(lib): for i in range(10): img = Image.open(lib+"/"+str(i)+".jpg") RR = transforms.RandomRotation(degrees=(10, 80)) #degrees为随机旋转的角度 rr_image = RR(img) rr_image.save('{}/rand_rotation{}.jpg'.format(rdir, i))
#图片依概率翻转,p为翻转的概率
def horizontal_flip(lib):
for i in range(10):
img = Image.open(lib+"/"+str(i)+".jpg")
HF = transforms.RandomHorizontalFlip(p=1.0) #p为概率,缺省时默认0.5
hf_image = HF(img)
hf_image.save('{}/hori_flip{}.jpg'.format(rdir, i))
Copier après la connexion
#图片依概率翻转,p为翻转的概率 def horizontal_flip(lib): for i in range(10): img = Image.open(lib+"/"+str(i)+".jpg") HF = transforms.RandomHorizontalFlip(p=1.0) #p为概率,缺省时默认0.5 hf_image = HF(img) hf_image.save('{}/hori_flip{}.jpg'.format(rdir, i))
Ce qui suit montre l'image après l'opération :
Chaque ligne de haut en bas est le résultat d'un redimensionnement, d'un recadrage central, d'un retournement, d'un recadrage aléatoire et d'une rotation aléatoire
Taille de transformation d'image unique - img.resize()C'est une expérience d'apprentissage. un simple programme que vous avez passé peut changer la taille de l'image, soit en jpg, soit en png :#encoding=utf-8 #author: walker #date: 2014-05-15 #function: 更改图片尺寸大小 from PIL import Image ''' filein: 输入图片 fileout: 输出图片 width: 输出图片宽度 height:输出图片高度 type:输出图片类型(png, gif, jpeg...) ''' def ResizeImage(filein, fileout, width, height, type): img = Image.open(filein) out = img.resize((width, height),Image.ANTIALIAS) #resize image with high-quality out.save(fileout, type) if __name__ == "__main__": filein = r'0.jpg' fileout = r'testout.png' width = 6000 height = 6000 type = 'png' ResizeImage(filein, fileout, width, height, type)
Le deuxième paramètre :
- Image.NEAREST : Faible qualité
Image.NEAREST
:低质量 Image.BILINEAR
:双线性Image.BICUBIC
:三次样条插值Image.ANTIALIAS
Image.BILINEAR
: Bilinéaire Image.BICUBIC
: Interpolation de spline cubique 🎜🎜🎜🎜 Image.ANTIALIAS
: haute qualité🎜🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

PHP est originaire en 1994 et a été développé par Rasmuslerdorf. Il a été utilisé à l'origine pour suivre les visiteurs du site Web et a progressivement évolué en un langage de script côté serveur et a été largement utilisé dans le développement Web. Python a été développé par Guidovan Rossum à la fin des années 1980 et a été publié pour la première fois en 1991. Il met l'accent sur la lisibilité et la simplicité du code, et convient à l'informatique scientifique, à l'analyse des données et à d'autres domaines.

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Pour exécuter le code Python dans le texte sublime, vous devez d'abord installer le plug-in Python, puis créer un fichier .py et écrire le code, et enfin appuyez sur Ctrl B pour exécuter le code, et la sortie sera affichée dans la console.

VS Code peut fonctionner sur Windows 8, mais l'expérience peut ne pas être excellente. Assurez-vous d'abord que le système a été mis à jour sur le dernier correctif, puis téléchargez le package d'installation VS Code qui correspond à l'architecture du système et l'installez comme invité. Après l'installation, sachez que certaines extensions peuvent être incompatibles avec Windows 8 et doivent rechercher des extensions alternatives ou utiliser de nouveaux systèmes Windows dans une machine virtuelle. Installez les extensions nécessaires pour vérifier si elles fonctionnent correctement. Bien que le code VS soit possible sur Windows 8, il est recommandé de passer à un système Windows plus récent pour une meilleure expérience de développement et une meilleure sécurité.

L'écriture de code dans Visual Studio Code (VSCODE) est simple et facile à utiliser. Installez simplement VScode, créez un projet, sélectionnez une langue, créez un fichier, écrivez du code, enregistrez-le et exécutez-le. Les avantages de VSCOD incluent la plate-forme multiplateuse, gratuite et open source, des fonctionnalités puissantes, des extensions riches et des poids légers et rapides.

VS Code peut être utilisé pour écrire Python et fournit de nombreuses fonctionnalités qui en font un outil idéal pour développer des applications Python. Il permet aux utilisateurs de: installer des extensions Python pour obtenir des fonctions telles que la réalisation du code, la mise en évidence de la syntaxe et le débogage. Utilisez le débogueur pour suivre le code étape par étape, trouver et corriger les erreurs. Intégrez Git pour le contrôle de version. Utilisez des outils de mise en forme de code pour maintenir la cohérence du code. Utilisez l'outil de liaison pour repérer les problèmes potentiels à l'avance.
