Maison >développement back-end >Tutoriel Python >Une brève introduction aux méthodes de lecture et d'écriture d'images de diverses bibliothèques d'images en Python (avec code)
Le contenu de cet article est une brève introduction aux méthodes de lecture et d'écriture d'images de diverses bibliothèques d'images en Python (avec code). J'espère qu'il a une certaine valeur de référence. vous aidera.
Il existe actuellement plusieurs bibliothèques d'images grand public :
1 OpenCV 2. 3. matplotlib.image : Parmi les bibliothèques d'images ci-dessus, OpenCV est sans aucun doute la plus puissante et la plus mature. 1.1 Lecture et stockage d'images OpenCV
1.2Traitement du grisage d'images OpenCV1.3 Transformation de format de matrice OpenCV
🎜>Pourquoi ? :Format de la matrice OpenCV (hauteur, largeur, canaux) -->> Le type de matrice d'apprentissage en profondeur peut être (canaux, hauteur, largeur)
import cv2 #读取图像 直接是numpy矩阵格式 img = cv2.imread('horse.jpg',1) # 0表示读入灰色图片,1表示读入彩色图片 cv2.imshow('image',img) # 显示图像 print(img.shape) # (height,width,channel) print(img.size) # 像素数量 print(img.dtype) # 数据类型 print(img) # 打印图像的numpy数组,3纬数组 #储存图像 # 当前目录储存 cv2.write(‘horse1.jpg',img) # 自定义储存 cv2.write(‘/path_name/’ + str(image_name) + '.jpg',img) cv2.waitKey()1.4 Attribution d'image OpenCV Normalisation des données
import cv2 #方法一 img = cv2.imread('horse.jpg',0) # 0表示读入灰色图片,或者使用cv2.IMREAD_GRATSCALE 替代0 cv2.imshow('gray image',img) #方法二 img = cv2.imread('horse.jpg') gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) cv2.imshow('gray image',gray_img) print(gray_img.shape) # (height, width) print(gray_img.size) # 像素数量 print(gray_img) # 打印图像的numpy数组,2维 cv2.waitKey()1.5 Conversion OpenCV BRG en RVB
import cv2 import numpy as np img = cv2.imread('horse.jpg',1) cv2.imshow('image',img) # 矩阵格式的变换 print(img.shape) img = img.transpose(2,0,1) #变换函数 print(img.shape)1.6 Pixels d'accès OpenCV
# 矩阵扩展 (batch_size, channels, height, width) 预测单张图片的操作 # 加一列作为图片的个数 img = np.expand_dims(img, axis=0) #使用numpy函数 print(img.shape)
# 训练阶段构建batchdata_lst = [] loop: img = cv2.imread('xxx.jpg') data_lst.append(img) data_arr = np.array(data_lst)
1.7 Découpage de la région d'intérêt OpenCV Cut (ROI)
import cv2 # 为了减少计算量,需要把像素值0-255转换到0-1之间 img = cv2.imread('horse.jpg') img = img.astype('float') / 255.0 # 先转化数据类型为float print(img.dtype) print(img)
2.1 Lecture et stockage d'images PIL
import cv2 img = cv2.imread('horse.jpg') img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) # 转为RGB format print(img)
2.2 Traitement du grisage des images PIL
import cv2 img = cv2.imread('horse.jpg') gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # 转为Gray image print(img[4,4]) # 3 channels print(gray_img[4,4]) # 1 channel2.3 Sens PIL Découpage de zone d'intérêt
import cv2 img = cv2.imread('horse.jpg') print(img.shape) roi = img[0:437,0:400] # [y:height,x:width] cv2.imshow('roi',roi) cv2.waitKey()2.4 Fonctionnement des canaux
from PIL import Image import numpy as np #图像读取 img = Image.open('horse.jpg') print(img.format) # 图片格式 print(img.size) # (width,height) print(img.mode) # 图片通道类型 #将图像转化为矩阵格式 arr = np.array(img) print(arr.shape) print(arr.dtype) #图像储存 new_img = Image.fromarray(arr) new_img.save('test.jpg') img.show()
3.1 Lecture et stockage des images Matplotlib
#图像灰化处理 gray = Image.open('horse.jpg').convert('L') gray_arr = np.array(gray) print(gray_arr.shape) # (height,width) print(gray_arr.dtype) print(gray_arr) gray.show()
3.2 Traitement du grisage des images Matplotlib
# 感兴趣区域剪切 img = Image.open('horse.jpg') roi = img.crop((0,0,200,200)) # (左上x,左上y,右下x,右下y) roi.show()
4.1 skimage lit et stocke les images
# 通道处理 r,g,b = img.split() #分离 img = Image.merge("RGB",(b,g,r)) #合并 img = img.copy() #复制
4.2 traitement du grisonnement de skimage
import matplotlib.pyplot as plt import numpy as np # 图像读取为numpy数组格式 img = plt.imread('horse.jpg') plt.axis('off') # 关闭刻度显示 print(img.shape) # (height, width, channel) print(img.size) # 像素数量 print(img.dtype) #储存图片 plt.savefig('./name.jpg') figure = plt.figure(figsize=(20,10)) # 调整显示图片的大小 plt.imshow(img) plt.show()
5.1 scipy.misc lit et stocke les images
#图片灰化处理 # 平均值发 img_mean = img.mean(axis=2) plt.imshow(img_mean,cmap='gray') plt.show() #最大值法 img_max = img.max(axis=-1) plt.imshow(img_max,cmap='gray') plt.show() #RGB三原色法 gravity = np.array([0.299,0.587,0.114]) img_gravity = np.dot(img,gravity) plt.imshow(img_gravity,cmap="gray") plt.show()
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!