• python批量修改图像像素,修改命名,二值化,划分数据集


    修改命名

    是直接在源文件夹下面修改的 所以记得提前复制下文件再 处理。

    #-----------------------------批量重命名图片------------------------------------
    #-----------重命名《图片》《xml文件》《任何格式的文件》都可以自定义序号来命名------------
    import os
    import cv2 as cv
    # 导入需要的模块
    from glob import glob
    from PIL import Image
    # 存储(输出)路径
    ##path_save = "F://A-MLearn//archiveDack//Origtestall//all"
    path = 'F://A-MLearn//archiveDack//sg//Pro//'
    # 绝对路径
    filelist = os.listdir(path)
    '''
    起始数字,重命名的第一个文件的名字会加1
    '''
    i = 0
    for item in filelist:
            print(i);
            if item.endswith('.jpg'):
                    print(i);
                    i = i + 1
                    # 第一张图片命名为1.png
                    name = str(i)
                    # 将数字转换为字符串才能命名
                    src = os.path.join(os.path.abspath(path),item)
                    # 原始图像的路径
                    dst = os.path.join(os.path.abspath(path),name + '.jpg')
                    # 目标图像路径
            try:
                    os.rename(src,dst)
                    print('rename from %s to %s'%(src,dst))
                    # 将转换结果在终端打印出来以便检查
            except:
                    continue
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    批量修改文件夹下面所有图片的像素

    图像分辨率指图像中存储的信息量,是每英寸图像内有多少个像素点,分辨率的单位为PPI(Pixels Per Inch),通常叫做像素每英寸。图像分辨率一般被用于ps中,用来改变图像的清晰度。

    图像分辨率的大小会影响到我们实验的进行,修改合适的分辨率可以让实验完美的

    进行下去。
    from glob import glob
    from PIL import Image
    import os
    ###
    img_path = glob("F:/A-MLearn/archiveDack/sg/all/*.jpg")#对目录内容进行匹配,*.jpg表示获取当前目录下所有的jpg格式图片
    # path_save = "Cutimgs/1-outer/"#存放新文件的文件夹,需要自己提前创建
    def produceImage(file_in, width, height, file_out):
        image = Image.open(file_in)
        resized_image = image.resize((width, height), Image.ANTIALIAS)
        resized_image.save(file_out) # #修改并保存图片
    for file_in in img_path:  #批量处理
        width = 256  # 调整的分辨率大小
        height = 256
        # 分辨率
        produceImage(file_in, width, height, file_in)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    参考链接:
    链接一:
    https://blog.csdn.net/qq_32394351/article/details/90212002
    链接二:
    https://blog.csdn.net/qq_45222550/article/details/125025338?spm=1001.2014.3001.5502

    批量二值化

    import os
    import cv2
    from PIL import Image
    def binarization():
        # 获取目录下所有图片名
        filename = os.listdir(r"F:\A-MLearn\archiveDack\sg\all")
        print(filename)
        # os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。
        base_dir = r"F:\A-MLearn\archiveDack\sg\all"  # input
        new_dir = r"F:\A-MLearn\archiveDack\sg\all1"  # output
        for img in filename:
            name = img
            path1 = os.path.join(base_dir, img)
            img = cv2.imread(path1)
            # print(img)
            Grayimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
            ret, thresh = cv2.threshold(Grayimg, 255, 255, cv2.THRESH_TOZERO_INV) #这个函数十分重要
            cv2.imwrite('img.png', thresh)
            image = Image.open('img.png')
            # 有需要可对图像进行大小调整
            # image = image.resize((350, 350),Image.ANTIALIAS)
            path = os.path.join(new_dir, name)
            image.save(path)
    
    binarization()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    参考链接:
    https://www.cnblogs.com/april0315/p/13576778.html

    https://blog.csdn.net/m0_61899108/article/details/123006032

    这个二值化有问题有问题

  • 相关阅读:
    SpringCloud Config(配置中心)实现配置自动刷新总结
    原理Redis-动态字符串SDS
    v-show与v-if控制图片显隐的本质
    MySQL常见操作
    【NOWCODER】- Python:内置函数(三)
    面向对象技术--设 计 模 式
    一些知识汇总
    flink实战--flinksql 窗口TVF
    Java基础错题集(一)
    独孤思维:不要计较眼前得失,因为你会失去更多
  • 原文地址:https://blog.csdn.net/qq_52626583/article/details/127730171