python如何讲一个文件中的图片分到两个

Posted subic

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何讲一个文件中的图片分到两个相关的知识,希望对你有一定的参考价值。

最近在做一个图像分类的比赛,作为初次接触深度学习的菜鸟,上手了keras。说实话,除了keras教程,中文博客的技术支持太差了。正在头大的学习中...废话不多说,记录一下学习中的一些小细节。在遇到generator.flow_from_directory(‘data/train‘...)这个函数时,需要输入训练图片的路径。此时训练图像和验证图像都在一个目录下,所以我需要重建两个文件来分别放训练图像和验证图像。开始,我想,利用opencv将每张图片读出来,然后再根据是否为训练图像或者验证图像分别重新写到重新建的文件夹里。后来发现python中的 from shutil import copy2 函数可以直接将图片放到指定的路径下。

import os
import random
import shutil
from  shutil import copy2
trainfiles = os.listdir(Data/train)
num_train = len(trainfiles)
index_list = range(num_train)
random.shuffle(index_list)
num = 0
trainDir = Data/pre_train
validDir = Data/pre_valid
for i in index_list:
    fileName = os.path.join(Data/train, trainfiles[i])
    if num < num_train*0.8:
        copy2(fileName, trainDir)
    else:
        copy2(fileName, validDir)
    num += 1

简单思路:将原来‘Data/train’路径下的图片名读出,然后打乱所有图片的顺序,将打乱顺序后的总图片数的前80%图片作为训练数据放到新建的‘Data/pre_train‘目录下,其余的图片放到‘Data/pre_valid‘目录下。

以上是关于python如何讲一个文件中的图片分到两个的主要内容,如果未能解决你的问题,请参考以下文章

带有 SlidingMenu 的片段中的 ViewPager

创建自己的代码片段(CodeSnippet)

13 个非常有用的 Python 代码片段

Python代码阅读(第40篇):通过两个列表生成字典

如何在导航抽屉中的两个片段之间传递数据

Python+sklearn使用支持向量机算法实现数字图片分类