Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

GPU でのピクセル ベースの演算の実行

この例では、処理するデータと演算の両方を GPU に送信する関数を使用して GPU 上でピクセル ベースの演算を実行する方法を説明します。この方法は、2 つ以上のデータセットを必要とする要素単位の演算で最も効果的です。

イメージを読み取って表示します。

I = imread("strawberries.jpg");
imshow(I)

gpuArray (Parallel Computing Toolbox) オブジェクトを作成することにより、データを CPU から GPU に移動します。

Igpu = gpuArray(I);

GPU で演算を実行します。この例では、カスタマイズした赤、緑、青のカラー チャネルの重みを使用して RGB イメージをグレースケール イメージに変換する、rgb2gray_custom というカスタム関数を定義します。この関数の定義は、この例の終わりで行います。関数 arrayfun (Parallel Computing Toolbox) を使用して、ハンドルをカスタム関数に、データを GPU に渡して評価します。

Igray_gpu = arrayfun(@rgb2gray_custom, ...
    Igpu(:,:,1),Igpu(:,:,2),Igpu(:,:,3));

関数 gather (Parallel Computing Toolbox) を使用して、データを GPU から CPU に戻します。

Igray = gather(Igray_gpu);

結果を表示します。

imshow(Igray)

サポート対象の関数

補助関数 rgb2gray_custom は 3 つのチャネルの線形結合を取り、単一チャネルの出力イメージを返します。

function gray = rgb2gray_custom(r,g,b)
    gray = 0.5*r + 0.25*g + 0.25*b;
end

参考

(Parallel Computing Toolbox) | (Parallel Computing Toolbox) | (Parallel Computing Toolbox)

関連する例

詳細