SSS

Be honest with yourself.


  • Home

  • About

  • Tags

  • Categories

  • Archives

简单python图片处理

Posted on 2019-04-09 In deep learning

Python 图片的读写

auther: Haoyu

  1. opencv
  2. PIL(pillow)
  3. matplotlib.image
  4. skimage

opencv

  • 读取图片
1
2
3
4
5
6
import cv

img = cv2.imread('image.jpg')
cv2.imshow('image', img) # first parameter is the name of window
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 图片读出的格式

opencv 读取的格式为BGR,不是传统的RGB格式,所以这里需要转换为平常的RBG, 且是,Height x Weight x Channel, 但是一般深度学习的图片矩阵排列方式为Channel x Height x Weight

1
2
img = cv2.cvColor(img, cv2.COLOR_BGR2RGB)
img = img.transpose(2,0,1)
  • 归一化
1
img_norm = img.astype('float') / 255.0 # 一定先转换为float
  • 存储
1
2
3
4
cv2.imwrite('saveimage.jpg', img_norm) # 发现图片是黑色的

img_save = img_norm * 255 # 需要变回0-255的图片
cv2.imwrite('saveimage.jpg', img_save)

PIL(pillow)

  • 读取图片
1
2
3
4
from PIL import Image
import numpy as np

img = Image.open('image.jpg')
  • 图片读出格式

PIL 读出的图片是特殊格式是 JPEG, 需要用numpy来转换为矩阵,是RGB排列

img_arr = np.array(img)

  • 存储
1
2
img_new = Image.fromarray(img_arr)
img_new.save('image_new.jpg')

matplotlib

  • 读取图片
1
2
3
4
5
6
7
import matplotlib.pyplot as plt
import numpy as np

image = plt.imread('image.jpg')
plt.show(image)
plt.axis('off') # 开启横竖轴坐标
plt.show()
  • 图片读出格式

本身读出就已经是数组格式了,不需要使用numpy来转换且为RGB排列

skimage

  • 读取存储图片
1
2
3
4
from skimage import io

im = io.imread('1.jpg')
io.imsave('sk.png',im)
  • 图片读出格式

也是读出的是数组,numpy array格式,RGB排列

# python
Neural Networks and Deep Learning from coursera
python打开文件
  • Table of Contents
  • Overview
haoyu

haoyu

Make it come true.
20 posts
6 categories
10 tags
GitHub
  1. 1. Python 图片的读写
    1. 1.1. opencv
    2. 1.2. PIL(pillow)
    3. 1.3. matplotlib
    4. 1.4. skimage
© 2018 – 2019 Haoyu
Powered by Hexo v3.7.0
|
Theme – NexT.Gemini v7.3.0