美文网首页
图片转换

图片转换

作者: 向着光噜噜 | 来源:发表于2021-03-13 09:19 被阅读0次

loss与val_loss

复制文件

import os

import shutil

import numpy as np

txt_arr=np.loadtxt('val.txt',dtype=str,delimiter='  ')

path_c='val/MeanderControl'

path_p='val/MeanderPatients'

# if(os.path.isfile(path_c)):

#     print('1')

#     os.mkdir(path_c)

# if(os.path.isfile(path_p)):

#     os.mkdir(path_p)

path_c=os.path.realpath(path_c)

path_p=os.path.realpath(path_p)

for file_img in txt_arr:

    # print(file_img[1], int(file_img[1])==1)

    path_src=os.path.realpath('val')

    path_src=os.path.join(path_src,file_img[0])

    if(int(file_img[1])==1):

        shutil.copy(path_src,path_p)

    else:

        shutil.copy(path_src,path_c)

获取当前目录下文件名放入txt,执行  .bat

@echo off

dir /b /on >list.txt

目录下的分类图片变成  .csv  格式

# -*- coding: utf-8 -*-

import csv,os,cv2

def convert_img_to_csv(img_dir):

    #设置需要保存的csv路径

    with open(r'E:\MyWork\RBM-Classification\Meander_HandPD_test.csv','w') as f:

        #设置csv文件的列名

        #column_name = ["label"]

        #column_name.extend(["pixel%d"%i for i in range(32*32)])

        #将列名写入到csv文件中

        writer = csv.writer(f)

        #writer.writerow(column_name)

        #该目录下有9个目录,目录名从0-9

        for i in range(2):

            #获取目录的路径

            img_temp_dir = os.path.join(img_dir,str(i))

            #获取该目录下所有的文件

            img_list = os.listdir(img_temp_dir)

            #遍历所有的文件名称

            for img_name in img_list:

                #图片路径

                img_path = os.path.join(img_temp_dir,img_name)

                #判断文件是否为目录,如果为目录则不处理

                if not os.path.isdir(img_path):

                    #因为图片是黑白的,所以以灰色读取图片

                    img = cv2.imread(img_path,cv2.IMREAD_UNCHANGED)

                    #图片标签

                    row_data = [i]

                    #获取图片的像素

                    row_data.extend(img.flatten())

                    #将图片数据写入到csv文件中

                    writer.writerow(row_data)

if __name__ == "__main__":

    #将该目录下的图片保存为csv文件

    convert_img_to_csv(r"E:\MyWork\RBM-Classification\Meander_HandPD")

    print("success")

把分类图片变成  .pkl格式,并分测试集,训练集,验证集

# encoding: utf-8

import cPickle    

import os    

import json  

import pylab

import numpy  

from PIL import Image

i = 0

# r'data\Expression 1 文件一共含有368张,每张大小28*28.

# olivettifaces 则保存的就是这368张图片的信息。

# olivettifaces_label 中包含的是368张图片的标签信息

olivettifaces=numpy.empty((368,2352))

olivettifaces_label=numpy.empty(368)

#  下面这函数是列出文件夹中所有的文件,到filename中

for filename in os.listdir(r'E:\MyWork\RBM-Classification\Meander_HandPD\MeanderControl'):

    print filename

    if(filename!='Thumbs.db'):   

        basedir = 'E:\MyWork\RBM-Classification\Meander_HandPD\MeanderControl/'

        imgage = Image.open(basedir + filename)

        img_ndarray = numpy.asarray(imgage, dtype='float64')/256

        olivettifaces[i]=numpy.ndarray.flatten(img_ndarray)

        # 标签要从0开始,不然在cnn训练时会有错误

        olivettifaces_label[i]=0

        i = i + 1

for filename in os.listdir(r'E:\MyWork\RBM-Classification\Meander_HandPD\MeanderPatients'):

    print filename

    if(filename!='Thumbs.db'):   

        basedir = 'E:\MyWork\RBM-Classification\Meander_HandPD\MeanderPatients/'

        imgage = Image.open(basedir + filename)

        img_ndarray = numpy.asarray(imgage, dtype='float64')/256

        olivettifaces[i]=numpy.ndarray.flatten(img_ndarray)  

        olivettifaces_label[i]=1     

        i = i + 1

olivettifaces_label=olivettifaces_label.astype(numpy.int)   

 # 下面是生成pkl格式的文件,保存数据。 

print olivettifaces.shape

path1 = os.path.dirname(__file__)

print os.path.join(path1,'Meander_HandPD.pkl')

write_file=open(os.path.join(path1,'Meander_HandPD.pkl'),'wb')

cPickle.dump([[olivettifaces[0:249],olivettifaces_label[0:249]],

             [olivettifaces[250:308],olivettifaces_label[250:308]],

             [olivettifaces[309:367],olivettifaces_label[309:367]]],

             write_file,-1)  

write_file.close()

相关文章

网友评论

      本文标题:图片转换

      本文链接:https://www.haomeiwen.com/subject/jxxhfhtx.html