

numpyの画像データセットをリサイズしたいです．

具体的には，numpy配列のshapeが(2000, 512, 512, 3)の画像データセットを，(2000, 256, 256,
3)のnumpy配列にリサイズしたいです．（⇒512×512の画像を256×256にリサイズ）

つきましては，何か方法を教えてくだされば幸いです．


CC BY-SA 4.0
2020-01-02T09:01:12.747
61936
2023-01-04T06:03:05.413
question
python tensorflow numpy keras
画像データセットのリサイズ


Jupyterでの指定したディレクトリ内の画像のサイズを一括でリサイズするコードです。

次のセルに `IMG('image').convert('jpg').resize(256,256)` で画像のリサイズができるようになっています。

[code]

    from  PIL import Image
    import os
    import shutil
    import cv2
    from pathlib import Path
    
    class IMG():
        def __init__(self,dic):
            """初期化時には画像を置いてるディレクトリのパスをいれる"""
            self.directory=dic
    
        def convert(self,suffix):
            """拡張子を任意の拡張子に変更するメソッド
            引数には.(ドット)を除いた拡張子をいれる"""
            for i in os.listdir(self.directory):
                fp = self.directory + '/' + i 
                img=cv2.imread(fp)
                file_Path=Path(fp)
                cv2.imwrite(self.directory + '/' +file_Path.stem + '.' + suffix,img)
                if file_Path.suffix != '.jpg':
                    os.remove(fp)
            return self
    
    
        def rename(self,new_file):
            """ファイル名を任意をファイル名に変更するメソッド
            引数には変更したいファイル名をいれる"""
            data=os.listdir(self.directory)
            for i, old_name in enumerate(data):
                path = self.directory + '/' + old_name
                # ファイル名の決定
                new_name = new_file + "_{0:03d}.jpg".format(i + 1)
                new_path= self.directory + '/' +new_name
                # ファイル名の変更
                os.rename(path, new_path)
            return self
    
        def resize(self,width,height):
            """ファイルサイズを任意のサイズに変更するメソッド
            引数には幅、高さをいれる"""
            for i in os.listdir(self.directory):
                path= self.directory + '/' + i
                img = cv2.imread(path)
                img_resize = cv2.resize(img,(width, height))
                cv2.imwrite(path,img_resize)
            return self
    
        def make_zip(self,zip_name):
            """ディレクトリの画像をzip化するメソッド
            引数には作成するzipファイル名をいれる"""
            shutil.make_archive(zip_name, 'zip', root_dir = self.directory)
    
[/code]


CC BY-SA 4.0
2021-05-18T08:35:51.853
75922
2021-05-18T16:20:23.880
2021-05-18T16:20:23.880
3060
45375
61936
answer