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 インチあたりのピクセル数を指します。解像度の単位は PPI (Pixels Per Inch) で、通常は 1 インチあたりのピクセル数と呼ばれます。画像の解像度は通常、画像の鮮明さを変更するために 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:
https://blog.csdn.net/qq_32394351/article/details/90212002
リンク 2:
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()

参考リンク:
https://www.cnblogs.com/april0315/p/13576778.html

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

この二値化には何か問題があります。

おすすめ

転載: blog.csdn.net/qq_52626583/article/details/127730171
おすすめ