画像をPyTorchテンソルに変換する方法は?
PyTorchテンソルは、単一のデータ型の要素を含むn次元配列(行列)です。テンソルは、numpy配列のようなものです。 numpy配列とPyTorchテンソルの違いは、テンソルがGPUを利用して数値計算を高速化することです。加速された計算では、画像はテンソルに変換されます。
画像をPyTorchテンソルに変換するには、次の手順を実行できます-
ステップ
-
必要なライブラリをインポートします。必要なライブラリはtorch、torchvision、Pillowです。
-
画像を読んでください。画像はPIL画像またはnumpy.ndarray(HxWxC)のいずれかである必要があります [0、255]の範囲。ここでH、W、 およびC 画像の高さ、幅、チャンネル数です。
-
画像をテンソルに変換する変換を定義します。 transforms.ToTensor()を使用します 変換を定義します。
-
上記で定義した変換を使用して、画像をテンソルに変換します。
入力画像
例1
# Import the required libraries import torch from PIL import Image import torchvision.transforms as transforms # Read the image image = Image.open('Penguins.jpg') # Define a transform to convert the image to tensor transform = transforms.ToTensor() # Convert the image to PyTorch tensor tensor = transform(image) # print the converted image tensor print(tensor)
出力
tensor([[[0.4510, 0.4549, 0.4667, ..., 0.3333, 0.3333, 0.3333], [0.4549, 0.4510, 0.4627, ..., 0.3373, 0.3373, 0.3373], [0.4667, 0.4588, 0.4667, ..., 0.3451, 0.3451, 0.3412], ..., [0.6706, 0.5020, 0.5490, ..., 0.4627, 0.4275, 0.3333], [0.4196, 0.5922, 0.6784, ..., 0.4627, 0.4549, 0.3569], [0.3569, 0.3529, 0.4784, ..., 0.3922, 0.4314, 0.3490]], [[0.6824, 0.6863, 0.7020, ..., 0.6392, 0.6392, 0.6392], [0.6863, 0.6824, 0.6980, ..., 0.6314, 0.6314, 0.6314], [0.6980, 0.6902, 0.6980, ..., 0.6392, 0.6392, 0.6353], ..., [0.7255, 0.5412, 0.5765, ..., 0.5255, 0.5020, 0.4157], [0.4706, 0.6314, 0.7098, ..., 0.5255, 0.5294, 0.4392], [0.4196, 0.3961, 0.5020, ..., 0.4510, 0.5059, 0.4314]], [[0.8157, 0.8196, 0.8353, ..., 0.7922, 0.7922, 0.7922], [0.8196, 0.8157, 0.8314, ..., 0.7882, 0.7882, 0.7882], [0.8314, 0.8235, 0.8314, ..., 0.7961, 0.7961, 0.7922], ..., [0.6235, 0.5059, 0.6157, ..., 0.4863, 0.4941, 0.4196], [0.3922, 0.6000, 0.7176, ..., 0.4863, 0.5216, 0.4431], [0.3686, 0.3647, 0.4863, ..., 0.4235, 0.4980, 0.4353]]])
上記のPythonプログラムでは、PIL画像をテンソルに変換しました。
例2
OpenCVを使用して画像を読み取ることもできます 。 OpenCVを使用して読み取られた画像のタイプはnumpy.ndarrayです 。 numpy.ndarrayを変換できます transforms.ToTensor()を使用してテンソルに変換します 。次の例を見てください。
# Import the required libraries import torch import cv2 import torchvision.transforms as transforms # Read the image image = cv2.imread('Penguins.jpg') image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # Define a transform to convert the image to tensor transform = transforms.ToTensor() # Convert the image to PyTorch tensor tensor = transform(image) # Print the converted image tensor print(tensor)
出力
tensor([[[0.4510, 0.4549, 0.4667, ..., 0.3333, 0.3333, 0.3333], [0.4549, 0.4510, 0.4627, ..., 0.3373, 0.3373, 0.3373], [0.4667, 0.4588, 0.4667, ..., 0.3451, 0.3451, 0.3412], ..., [0.6706, 0.5020, 0.5490, ..., 0.4627, 0.4275, 0.3333], [0.4196, 0.5922, 0.6784, ..., 0.4627, 0.4549, 0.3569], [0.3569, 0.3529, 0.4784, ..., 0.3922, 0.4314, 0.3490]], [[0.6824, 0.6863, 0.7020, ..., 0.6392, 0.6392, 0.6392], [0.6863, 0.6824, 0.6980, ..., 0.6314, 0.6314, 0.6314], [0.6980, 0.6902, 0.6980, ..., 0.6392, 0.6392, 0.6353], ..., [0.7255, 0.5412, 0.5765, ..., 0.5255, 0.5020, 0.4157], [0.4706, 0.6314, 0.7098, ..., 0.5255, 0.5294, 0.4392], [0.4196, 0.3961, 0.5020, ..., 0.4510, 0.5059, 0.4314]], [[0.8157, 0.8196, 0.8353, ..., 0.7922, 0.7922, 0.7922], [0.8196, 0.8157, 0.8314, ..., 0.7882, 0.7882, 0.7882], [0.8314, 0.8235, 0.8314, ..., 0.7961, 0.7961, 0.7922], ..., [0.6235, 0.5059, 0.6157, ..., 0.4863, 0.4941, 0.4196], [0.3922, 0.6000, 0.7176, ..., 0.4863, 0.5216, 0.4431], [0.3686, 0.3647, 0.4863, ..., 0.4235, 0.4980, 0.4353]]])
-
Tkinterで画像を追加するにはどうすればよいですか?
画像は、どのアプリケーションでも非常に便利なオブジェクトです。 PythonのPillowまたはPILパッケージを使用して、Tkinterアプリケーションで画像を処理できます。画像の読み込み、画像の抽出、画像ペインの構成など、いくつかの組み込み関数があります。 例 この例では、ユーザーにダイアログボックスから画像を選択してもらい、ラベルウィジェットを使用して画像を表示するように求めて追加します。 #Import the Tkinter library from tkinter import * from tkinter import ttk from tkinter import filed
-
画像をグレースケール ペイントに変換する方法
写真をグレースケールで印刷することは、プリンターのカラー インクを節約するための便利な方法です。カラーで公開したくない場合もありますが、ほとんどの写真は同じように見えます。そして時には、白黒でさらに良い.画像をグレースケール ペイントに変換するには、必要なのは黒のインクだけです .この記事では、Windows 10 のペイントで画像を白黒にする方法と、画像を白黒に変換するその他の方法について説明します。 Windows 10 で画像をグレースケール ペイントに変換する方法 画像を白黒に変換する利点は次のとおりです。 テクスチャ 白黒写真で美しく撮影できる 視聴者の注意を維持する優れた