【大数据】水质分析————(数据预处理)对水质图片的处理

 运用大数据对不同水质图片进行归类,其中所涉及到的数据预处理部分,

主要是将水质图片裁剪,得到图片的rgb阶矩阵。——>得到输入集

水质的数据包,全为图片,图片名为水质的等级——>得到输出集

处理完成后以字典(输出为 键 : 输入为 值)写入文本文件,具体代码如下:

#! /usr/bin/env python
#coding=utf-8
from PIL import Image
import numpy as np
import os

FileList = os.listdir("D:\\TP\\images") # 读入文件的所有文件
zd = {}
def var(x=None):
    mid = np.mean(((x - x.mean()) ** 3))
    return np.sign(mid) * abs(mid) ** (1/3)

for name in FileList:
    img = Image.open('D:\\TP\\images\\' + name) # 读入目录下的所有文件
    NAME = name.split(".jpg")[0]
    h = img.size[1]
    w = img.size[0]
    qg = img.crop(((w*2)/5 , (h*2)/5 , (w*3)/5 , (h*3)/5))
    r,g,b = qg.split() #分割成三个通道
    rd = np.asarray(r) #转换为矩阵格式
    gd = np.asarray(g)
    bd = np.asarray(b)
    zd[NAME] = [ rd.mean() , rd.std() , var(rd) , gd.mean() , gd.std() , var(gd) , bd.mean() , bd.std() , var(bd)] #将计算完rgb的1,2,3阶矩阵写入字典   


fw = open("zd.txt",'w+')
fw.write(str(zd))  # 写入文件
fw.close()

fr = open("zd.txt",'r+')
zd = eval(fr.read())
fr.close()
print("完成")

  

 

posted @ 2019-05-10 17:52  LiZR07  阅读(402)  评论(0编辑  收藏  举报