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)

Une brève introduction aux méthodes de lecture et d'écriture d'images de diverses bibliothèques d'images en Python (avec code)

不言
Libérer: 2019-03-15 13:49:51
avant
3123 Les gens l'ont consulté

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()
Copier après la connexion

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()
Copier après la connexion

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)
Copier après la connexion
1.6 Pixels d'accès OpenCV
# 矩阵扩展 (batch_size, channels, height, width) 预测单张图片的操作
# 加一列作为图片的个数
img = np.expand_dims(img, axis=0) #使用numpy函数
print(img.shape)
Copier après la connexion
# 训练阶段构建batchdata_lst = []
loop:
    img = cv2.imread('xxx.jpg')
    data_lst.append(img)
data_arr = np.array(data_lst)
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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 channel
Copier après la connexion

2.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()
Copier après la connexion

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()
Copier après la connexion


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()
Copier après la connexion

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()
Copier après la connexion

4.1 skimage lit et stocke les images

# 通道处理
r,g,b = img.split() #分离
img = Image.merge("RGB",(b,g,r)) #合并
img = img.copy() #复制
Copier après la connexion

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()
Copier après la connexion

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()
Copier après la connexion

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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal