2022-07-26 21:27:11 +08:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# @Time : 2022-7-24 0024 16:00
|
|
|
|
# @Author : Qing
|
|
|
|
# @Email : derighoid@gmail.com
|
|
|
|
# @File : Picture_Reading.py
|
|
|
|
# @Software: PyCharm
|
|
|
|
|
|
|
|
# 导入库
|
|
|
|
import os.path
|
|
|
|
|
|
|
|
import matplotlib.pyplot as plt
|
|
|
|
import numpy as np
|
|
|
|
from PIL import Image
|
|
|
|
|
|
|
|
|
|
|
|
# 建立图片读取类
|
|
|
|
class pictureRead(object):
|
|
|
|
def __init__(self, filePath):
|
|
|
|
self.filePath = filePath
|
|
|
|
|
|
|
|
# 图片读取
|
|
|
|
def fileRead(self):
|
|
|
|
if self.filePath == " ":
|
|
|
|
print("Please full in the file path")
|
|
|
|
else:
|
|
|
|
face = Image.open(self.filePath)
|
|
|
|
return face
|
|
|
|
|
|
|
|
# 图片转矩阵
|
|
|
|
def imageMatrix(self):
|
|
|
|
im = np.array(self.fileRead())
|
|
|
|
return im
|
|
|
|
|
|
|
|
# 图片转灰色
|
|
|
|
def imageGrey(self):
|
|
|
|
im_gray = np.array(self.fileRead().convert("L"))
|
|
|
|
return im_gray
|
|
|
|
|
|
|
|
# 打印图片类型
|
|
|
|
def get_imageType(self):
|
|
|
|
print(type(self.imageGrey()))
|
|
|
|
|
|
|
|
# 打印图片矩阵元素类型
|
|
|
|
def get_imageDtype(self):
|
|
|
|
print(self.imageGrey().dtype)
|
|
|
|
|
|
|
|
# 打印图片大小
|
|
|
|
def get_imageSize(self):
|
|
|
|
print(self.imageMatrix().shape)
|
|
|
|
|
|
|
|
# 图片plt展示
|
|
|
|
def plt_image(self):
|
2022-07-27 20:41:38 +08:00
|
|
|
plt.subplot(121)
|
2022-07-26 21:27:11 +08:00
|
|
|
# 原图片显示
|
|
|
|
plt.imshow(self.imageMatrix())
|
2022-07-27 20:41:38 +08:00
|
|
|
plt.subplot(122)
|
2022-07-26 21:27:11 +08:00
|
|
|
# 灰色图片显示
|
|
|
|
plt.imshow(self.imageGrey())
|
|
|
|
plt.show()
|
|
|
|
|
|
|
|
# 图片保存
|
|
|
|
def image_save(self):
|
|
|
|
path = 'E:\\桌面\\Python_Picture_Analysis\\data\\numpy_red.png'
|
|
|
|
root="E:\\桌面\\Python_Picture_Analysis\\data\\"
|
|
|
|
if not os.path.exists(root):
|
|
|
|
os.mkdir(root) # 判断是否存在文件夹
|
|
|
|
else:
|
|
|
|
if os.path.exists(path): # 判断是否已经存在该文件
|
|
|
|
print("File already exists")
|
|
|
|
else:
|
|
|
|
Image.fromarray(np.uint8(self.imageGrey())).save(path)
|
|
|
|
print("Save successfully")
|
|
|
|
|
|
|
|
|