python、PyTorch画像読出しとnumpy変換例
Tensorがnumpyに変わります
np.array(Tensor)
numpyをTensorに変換
toch.Tensor(numpy.darray)
PIL.Image.Imageをnumpyに変換します。
np.array(PIL.Image.Image)
numpyをPIL.Image.Imageに変換します。
Image.froomarray(numpy.darray)
まずnumpy.ndarayがnp.uint 8型に転換することを保証します。
numpy.astype(np.uint 8)、画素値[0,255]。
同時階調画像はnumpy.sharpeが(H,W)であることを保証します。
ここはnp.squeee()が必要です。カラー画像はnumpy.shopが(H,W,3)を保証します。
その後Image.froomarray(numpy.darray)
PIL.Image.ImageをTensorに変換します。
tochvision.transfrom
numpyに変換してPIL.Image.Imageに変換します。
グレースケール画像
cvで画像を書く場合、階調画像shapeは(H,W)または(H,W,1)とすることができる。カラー画像(H,W,3)
numpy.darrayからPIL.Image.Imageを得るには、階調図のshopは(H,W)、カラーは(H,W,3)でなければならない。
Varableタイプはnumpy.darrayに直接変換できません。
np.array(a.data)
以上のpython、PyTorch画像読取りとnumpy変換例は、小編集が皆さんに共有しているすべての内容です。参考にしていただければと思います。よろしくお願いします。
np.array(Tensor)
numpyをTensorに変換
toch.Tensor(numpy.darray)
PIL.Image.Imageをnumpyに変換します。
np.array(PIL.Image.Image)
numpyをPIL.Image.Imageに変換します。
Image.froomarray(numpy.darray)
まずnumpy.ndarayがnp.uint 8型に転換することを保証します。
numpy.astype(np.uint 8)、画素値[0,255]。
同時階調画像はnumpy.sharpeが(H,W)であることを保証します。
ここはnp.squeee()が必要です。カラー画像はnumpy.shopが(H,W,3)を保証します。
その後Image.froomarray(numpy.darray)
PIL.Image.ImageをTensorに変換します。
tochvision.transfrom
img=Image.open('00381fa010_940422.tif').convert('L')
import torchvision.transforms as transforms trans=transforms.Compose([transforms.ToTensor()])
a=trans(img)
TensorがPIL.Image.Imageに転化する。numpyに変換してPIL.Image.Imageに変換します。
グレースケール画像
img=Image.open('00381fa010_940422.tif').convert('L')
import torchvision.transforms as transforms
trans=transforms.Compose([transforms.ToTensor()])
a=trans(img)
b=np.array(a) #b.shape (1,64,64)
maxi=b.max()
b=b*255./maxi
b=b.transpose(1,2,0).astype(np.uint8)
b=np.squeeze(b,axis=2)
xx=Image.fromarray(b)
xx
カラー画像
img2=Image.open('00381fa010_940422.tif').convert('RGB')
import torchvision.transforms as transforms
trans=transforms.Compose([transforms.ToTensor()])
a=trans(img2)
a=np.array(a)
maxi=a.max()
a=a/maxi*255
a=a.transpose(1,2,0).astype(np.uint8)
b=Image.fromarray(a)
b
python-opencv
import cv2
a=cv2.imread('00381fa010_940422.tif') #a.shape (64,64,3)
cv2.imwrite('asd.jpg',a)
Image.fromarray(a)
b=cv2.imread('00381fa010_940422.tif',0)#b.shape (64,64)
Image.fromarray(b)
cv 2.imread()はnumpy.darrayに戻り、階調画像を読み取った後shopは(64,64)、RGB画像のshopは(64,64,3)となり、直接Image.froomarray()でImageに変換することができる。cvで画像を書く場合、階調画像shapeは(H,W)または(H,W,1)とすることができる。カラー画像(H,W,3)
numpy.darrayからPIL.Image.Imageを得るには、階調図のshopは(H,W)、カラーは(H,W,3)でなければならない。
Varableタイプはnumpy.darrayに直接変換できません。
np.array(a.data)
以上のpython、PyTorch画像読取りとnumpy変換例は、小編集が皆さんに共有しているすべての内容です。参考にしていただければと思います。よろしくお願いします。