pytouchカラー画像をグレースケール画像に変換する例


pytochライブラリ
pytoch自体はcifar 10などのデータセットをロードする関数を持っていますが、ロードされたのは3*200*200のテンソルです。グレースケール画像を使用するときは、彼自身の関数を使って修正して、カラー画像のグレースケール画像を速く完成させることができます。
pytoch関数

dataset = dset.CIFAR10(root='../train/data', download=True,transform=transforms.Compose([
        transforms.Scale(200),
        transforms.ToTensor(),
        transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
       ]))
ここには画像の処理、サイズの制御、Normalizeなどが含まれています。
pytouchライブラリ関数を変更
transformsのライブラリ関数の位置を見つけて、クラスGray()を追加します。

class Gray(object)

 def __call__(self, tensor):
  # TODO: make efficient
  R = tensor[0]
  G = tensor[1]
  B = tensor[2]
  tensor[0]=0.299*R+0.587*G+0.114*B
  tensor = tensor[0]
  tensor = tensor.view(1,200,200)
  return tensor
テナント.viewここで使うのはテナントを1*200*200の大きさにするためです。そうしないと200*200が出てきます。
以上のpytouchカラー画像の階調画像の例は、小編集が皆さんに提供した内容の全てです。参考にしていただければと思います。よろしくお願いします。