Cet article présente principalement l'utilisation de python pour traiter les images afin d'obtenir l'accès aux pixels dans les images. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent se référer à certains des exemples précédents
<.> , nous utilisons tous Image.open() pour ouvrir une image, puis opérons directement sur l'objet PIL. Ce n'est pas grave s'il s'agit juste d'une opération simple, mais c'est plus difficile si c'est un peu plus compliqué. Par conséquent, généralement après avoir chargé l’image, nous convertissons l’image en matrice pour effectuer des opérations plus complexes. Utilisez la bibliothèque numpy et la bibliothèque scipy en python pour effectuer diverses opérations sur les données et calculs scientifiques. Nous pouvons installer ces deux bibliothèques directement via pippip install numpy pip install scipy
from PIL import Image import numpy as np import matplotlib.pyplot as plt
from PIL import Image import numpy as np import matplotlib.pyplot as plt img=np.array(Image.open('d:/lena.jpg')) #打开图像并转化为数字矩阵 plt.figure("dog") plt.imshow(img) plt.axis('off') plt.show()
Appelez la fonction array() dans numpy pour convertir l'objet PIL en objet tableau. Pour afficher les informations sur l'image, vous pouvez utiliser la méthode suivante :
print img.shape print img.dtype print img.size print type(img)
from PIL import Image import numpy as np import matplotlib.pyplot as plt img=np.array(Image.open('d:/ex.jpg')) #随机生成5000个椒盐 rows,cols,dims=img.shape for i in range(5000): x=np.random.randint(0,rows) y=np.random.randint(0,cols) img[x,y,:]=255 plt.figure("beauty") plt.imshow(img) plt.axis('off') plt.show()
from PIL import Image import numpy as np import matplotlib.pyplot as plt img=np.array(Image.open('d:/pic/lena.jpg').convert('L')) rows,cols=img.shape for i in range(rows): for j in range(cols): if (img[i,j]<=128): img[i,j]=0 else: img[i,j]=1 plt.figure("lena") plt.imshow(img,cmap='gray') plt.axis('off') plt.show()
img[i,:] = im[j,:] # 将第 j 行的数值赋值给第 i 行 img[:,i] = 100 # 将第 i 列的所有数值设为 100 img[:100,:50].sum() # 计算前 100 行、前 50 列所有数值的和 img[50:100,50:100] # 50~100 行,50~100 列(不包括第 100 行和第 100 列) img[i].mean() # 第 i 行所有数值的平均值 img[:,-1] # 最后一列 img[-2,:] (or im[-2]) # 倒数第二行
Traitement Python Excel xlrd Introduction à la méthode
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!