python--画像ファイルの様々な開き方と相互変換


文書ディレクトリ
  • 1. image多様な開き方
  • 2. 相互変換
  • 3.ボリュームニューラルネットワークの入力

  • 1.イメージの様々な開き方
    PIL
    from PIL import Image
    #   PIL.Image.Image 
    img = Image.open(imgpth)
    #     IMage    save
    img.save(pth)
    

    SciPyはオープンソースのBSDライセンスの数学、科学、エンジニアリングライブラリです.SciPyライブラリはNumPyに依存しており、便利で迅速なN次元配列操作を提供します.SciPyライブラリを構築する主な理由は、NumPy配列とともに動作し、数値積分や最適化のルーチンなど、多くのユーザーフレンドリーで効率的なデジタル実践を提供することです.
    scipy.misc miscはmiscellaneousの略で、雑種の意味です.代表は他に適当な場所がないので、ここに置いておきました.画像ioに関する操作はすべてここにあるので、CVerにとってはまだ重要です
    import scipy.misc as misc
    img = misc.imread(imgpth) 
    #     np.array  
    

    cv2
    img = cv2.open(imgpth)
    #       shape H x W x C np.array
    #   C        BGR   RGB
    

    残りはskimageです.io, matplotlib.image.
    おすすめはscipyです.misc、読み込んだらnpですから.Arrayは、後続のデータ増強などの操作を容易にし、RGBシーケンスである.
    2.相互転化
    PIL.Image.Imageとnp.array間の相互転化
    img_np = np.array(PIL_img)
    img_PIL = Image.fromarray(img_np)
    

    3.コンボリューションニューラルネットワークの入力
    ニューラルネットワークのinputには次のような要求があります.
  • shapeは、C x H x W
  • である
  • は[0,1]
  • に正規化される.
    torchvisionは一連の操作を提供します.ToTensorは直接PILを実現する.Imageの正規化と次元変調.一連のデータ拡張操作も提供されています.
    ただし、対応するラベルも変更される場合はnumpyの操作で行うべきです.
    #      H x W x C --> C x H x W
    img = np.transpose(img, axes=(2,0,1))
    #    
    img = img / 255.0