8

画像を matlab にインポートしました。画像を表示する前に、画像の背景を透明にするにはどうすればよいですか? たとえば、白い背景に赤いボールがあります。赤いボールだけが表示され、白いピクセルが透明になるように、画像の白いピクセルを透明にするにはどうすればよいですか?

4

2 に答える 2

15

画像が「png」形式で保存されていることを確認する必要があります。次に、png ファイルの「アルファ」パラメーターを使用できます。これは、各ピクセルの透明度を個別に指定するマトリックスです。これは基本的に、ピクセルが透明な場合は 1、そうでない場合は 0 のブール マトリックスです。これは、透明にしたい色が常に同じ値 (つまり、uint8 の場合は 255) である限り、for ループで簡単に実行できます。常に同じ値であるとは限らない場合は、そのピクセルが透明になるしきい値または値の範囲を定義できます。

アップデート :

最初に画像を反復処理してアルファ マトリックスを生成し、(白を透明に設定すると仮定して) ピクセルが白の場合は常に、そのピクセルのアルファ マトリックスを 1 に設定します。

# X is your image
[M,N] = size(X);
# Assign A as zero
A = zeros(M,N);
# Iterate through X, to assign A
for i=1:M
   for j=1:N
      if(X(i,j) == 255)   # Assuming uint8, 255 would be white
         A(i,j) = 1;      # Assign 1 to transparent color(white)
      end
   end
end

次に、この新しく作成されたアルファ マトリックス (A) を使用して、画像を ".png" として保存します。

imwrite(X,'your_image.png','Alpha',A);
于 2012-04-18T16:09:40.047 に答える