ホームページ  >  記事  >  バックエンド開発  >  Python で画像のサイズ変更、切り抜き、回転、反転する方法

Python で画像のサイズ変更、切り抜き、回転、反転する方法

WBOY
WBOY転載
2023-05-10 10:43:212771ブラウズ

    写真のサイズ変更、切り抜き、回転、反転

    まず、オリジナルの写真が 10 枚オンラインでダウンロードされますさまざまなサイズ写真ランダムクロッピングの)

    from PIL import Image
    import torchvision.transforms as transforms
    #使用PIL库读入图片并进行resize
    def ResizeImage():
        if not os.path.exists(rdir):
            os.makedirs(rdir)
        for i in range(10):
            im = Image.open(dir+str(i)+".jpg")
            im = im.resize((320,240),Image.BILINEAR)  #第一个参数为想要的size,第二个参数为插值方法,双线性插值这里用的是
            im.save('{}/{}.jpg'.format(rdir, i))

    操作 3: ランダム回転Python で画像のサイズ変更、切り抜き、回転、反転する方法

    #图像随机剪裁和中心剪裁
    def crop(lib):
        for i in range(10):
            img = Image.open(lib+"/"+str(i)+".jpg")
            CenterCrop = transforms.CenterCrop((240,320))   #中心裁剪
            cropped_image = CenterCrop(img)  #PIL.Image.Image
            # im=np.array(cropped_image)  #可以将PIL.Image.Image转成ndarry
            #cropped_image.show()    #将图片显示
            cropped_image.save('{}/cen_crop{}.jpg'.format(rdir, i))
            RandomCrop = transforms.RandomCrop(size=(240, 320))  #随机剪裁
            random_image = RandomCrop(img)
            random_image.save('{}/rand_crop{}.jpg'.format(rdir, i))

    操作 4: 反転

    #随机旋转
    def random_rotation(lib):
        for i in range(10):
            img = Image.open(lib+"/"+str(i)+".jpg")
            RR = transforms.RandomRotation(degrees=(10, 80))   #degrees为随机旋转的角度
            rr_image = RR(img)
            rr_image.save('{}/rand_rotation{}.jpg'.format(rdir, i))

    以下は操作後の画像を示しています:

    各行は上から下まで、サイズ変更、中央切り抜き、反転、ランダム切り抜き、ランダム回転の結果です

    単一画像変換サイズ - img.resize()Python で画像のサイズ変更、切り抜き、回転、反転する方法

    これは私が学んだ簡単なプログラムで、jpg または png の画像のサイズを変更できます:

    #图片依概率翻转,p为翻转的概率
    def horizontal_flip(lib):
        for i in range(10):
            img = Image.open(lib+"/"+str(i)+".jpg")
            HF = transforms.RandomHorizontalFlip(p=1.0)  #p为概率,缺省时默认0.5
            hf_image = HF(img)
            hf_image.save('{}/hori_flip{}.jpg'.format(rdir, i))
    この関数 img.resize ((幅, 高さ),Image.ANTIALIAS)

    2 番目のパラメータ:

    #Image.NEAREST

    : 低品質

    • Image.BILINEAR

      : バイリニア

    • Image.BICUBIC

      : 3 次スプライン補間

    • Image.ANTIALIAS

      : 高品質

    以上がPython で画像のサイズ変更、切り抜き、回転、反転する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。