Python
 Computer >> コンピューター >  >> プログラミング >> Python

PyTorchの画像チャネル全体の平均を見つける方法は?


RGB画像には、赤、緑、青の3つのチャネルがあります。これらの画像チャネル全体の画像ピクセル値の平均を計算する必要があります。この目的のために、メソッド torch.mean()を使用します 。ただし、このメソッドへの入力パラメーターはPyTorchテンソルです。したがって、最初に画像をPyTorchテンソルに変換してから、このメソッドを適用します。テンソル内のすべての要素の平均値を返します。画像チャネル全体の平均を見つけるために、パラメータ dim =[1,2]を設定します。 。

ステップ

  • 必要なライブラリをインポートします。以下のすべてのPythonの例では、必要なPythonライブラリは torch、torchvision、Pillowです。 およびOpenCV 。すでにインストールされていることを確認してください。

  • image.open()を使用して入力画像を読み取ります 変数"img"に割り当てます 。

  • PIL画像をPyTorchTensorに変換する変換を定義します

  • 画像を「img」に変換します "上記で定義された変換を使用してPyTorchテンソルに変換し、このテンソルを" imgTensor"に割り当てます。 。

  • torch.mean(imgTensor、dim =[1,2])を計算します 。 3つの値のテンソルを返します。これらの3つの値は、3つのチャネルRGBの平均値です。これらの3つの平均値を、3つの新しい変数 "R_mean"、 "G_mean"に個別に割り当てることができます。 、および "B_mean"

  • 3つの平均値を出力します"R_mean"、 "G_mean"、 および"B_mean" 画像ピクセルの。

入力画像

両方の例で、次の画像を入力として使用します。

PyTorchの画像チャネル全体の平均を見つける方法は?

例1

# Python program to find mean across the image channels
# import necessary libraries
import torch
from PIL import Image
import torchvision.transforms as transforms

# Read the input image
img = Image.open('opera.jpg')

# Define transform to convert the image to PyTorch Tensor
transform = transforms.ToTensor()

# Convert image to PyTorch Tensor (Image Tensor)
imgTensor = transform(img)
print("Shape of Image Tensor:\n", imgTensor.shape)

# Compute mean of the Image Tensor across image channels RGB
R_mean, G_mean ,B_mean = torch.mean(imgTensor, dim = [1,2])

# print mean across image channel RGB
print("Mean across Read channel:", R_mean)
print("Mean across Green channel:", G_mean)
print("Mean across Blue channel:", B_mean)

出力

Shape of Image Tensor:
   torch.Size([3, 447, 640])
Mean across Read channel: tensor(0.1487)
Mean across Green channel: tensor(0.1607)
Mean across Blue channel: tensor(0.2521)
>

例2

OpenCVを使用して画像を読み取ることもできます 。 OpenCVを使用して読み取られた画像は、タイプが numpy.ndarrayです。 。ここで、この例では、平均を計算するために別の方法を使用します。 imgTensor.mean()を使用します 、テンソルの基本操作。次の例を見てください。

# Python program to find mean across the image channels
# import necessary libraries
import torch
import cv2
import torchvision.transforms as transforms

# Read the input image either using cv2 or PIL
img = cv2.imread('opera.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# Define transform to convert the image to PyTorch Tensor
transform = transforms.ToTensor()

# Convert image to PyTorch Tensor (Image Tensor)
imgTensor = transform(img)
print("Shape of Image Tensor:\n", imgTensor.shape)

# compute mean of the Image Tensor across image channels RGB
# The other way to compute the mean
R_mean, G_mean ,B_mean = imgTensor.mean(dim = [1,2])

# print mean across image channel RGB
print("Mean across Read channel:", R_mean)
print("Mean across Green channel:", G_mean)
print("Mean across Blue channel:", B_mean)

出力

Shape of Image Tensor:
   torch.Size([3, 447, 640])
Mean across Read channel: tensor(0.1487)
Mean across Green channel: tensor(0.1607)
Mean across Blue channel: tensor(0.2521)
>
  1. ネットワークに最適なWi-Fiチャネルを見つける方法

    Wi-Fi信号にチャネルがあることをご存知ですか?本格的なコンピューターからモノのインターネットまで、非常に多くのWi-Fiデバイスが私たちの生活を支配しているため、通信はかなり混雑する可能性があります。 デバイス間の競合をできるだけ少なくするために、チャネルを使用してデバイスを相互に分離し、より良い信号接続を実現します。もちろん、デバイスが多ければ多いほど、これらのチャネルは混雑し、結果としてWi-Fiの品質が低下します。そのため、Wi-Fiチャネルをチェックして、何が起こっているかを確認することをお勧めします。 チャネルはどのように機能しますか? チャネルを選択するときは、5GHzまた

  2. Windows 11 PC で IP アドレスを見つける方法

    インターネット接続に問題がありますか?さまざまなソリューションを試しているときに、コンピューターの IP アドレスを知っていると便利です。 初心者向けに説明すると、IP アドレス (インターネット プロトコル アドレスの略) は、インターネット上でデバイスを識別する一意の数値アドレスです。機械の郵便番号と考えることができます。郵便番号が現実世界の住所を定義するのと同じように、IP アドレスはマシンのアドレスを定義し、相互の検索に役立ちます。 Windows 11 で IP アドレスを見つける方法は複数あります。まず、コマンド プロンプトを使用するなど、最も単純な方法から始めましょう。 1.