python文件操作与图片处理

Posted 彭祥.

tags:

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

今天师哥给了博主一组图片进行评估,师哥给的算法中,给出了读取一张图片的方法,交给我的任务便是读取1500张,并将结果保存到每个文件夹的相应的txt中。
分析:首先需要将所有文件进行读取

	basepath="E:/app/jian/"  #根目录
    for i in range(0,10):  
        dictory = "000"  #按照顺序来获取文件路径
        dictory += str(i)  

每张图片里面有1-6张不等图片

因此我们在遍历时要给定每个文件夹读取jpeg文件的次数,防止出越界问题
统计每个文件夹下某种文件类型的数量

def countjpg(path):
    import glob
    path_file_number = glob.glob(path+'*.jpeg')  # 获取当前文件夹下个数
    return (len(path_file_number))

此外,在运行过程中,一旦出现错误,我们需要将每个文件夹中写入的txt文件全部删除:

def deletetxt():
    import os
    path = "E:/app/nei/" + dictory + "/" + dictory + ".txt"
    os.remove(path)

最终我们的循环遍历函数

def circulation():
    basepath="E:/app/jian/"
    for i in range(0,10):
        dictory = "000"
        dictory += str(i)
        countpath=basepath + dictory +"/"
        count=countjpg(countpath)+1
        path = basepath + dictory + "/" + dictory + ".txt"
        with open(path, "a") as f:
            f.write("间方法三Hausdoff" + "\\r")
        for j in range(1, count):
            imgname = "image-0"
            imgname += str(j)
            path1=basepath+dictory+"/"+dictory+".jpg"
            path2 = basepath + dictory + "/" + imgname + ".jpeg"
            #zuidasiran2(path1,path2,path)
            #RMSE(path1,path2,path)
            Hausdoff(path1,path2,path)

此外,需要对所有的jpg图片按照像素进行剪切

im = Image.open(path1)
resized_image = im.resize((128, 128), Image.ANTIALIAS)
resized_image.save(path1)

并作灰度处理

	img = cv2.imread(path1)  #读取图片
    img1 = cv2.imread(path2)
    dst = color.rgb2gray(img)  #灰度处理
    dst1=color.rgb2gray(img1)

以上是关于python文件操作与图片处理的主要内容,如果未能解决你的问题,请参考以下文章

网站图片挂马检测及PHP与python的图片文件恶意代码检测对比

你如何在 python 中处理 graphql 查询和片段?

片段处理屏幕方向与操作栏中的选项卡

常用python日期日志获取内容循环的代码片段

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

OpenCV—Python PyLibTiff_psd 图像基本操作以及图像格式转换