現在、Psychtoolbox に表示されるグレースケールの .png 画像をいくつか準備しています。これらの .png ファイルはすべて透明な背景を持っているため、次のようにアルファ レイヤーをファイル マトリックスに追加しています。
% sets up for the alpha
Screen('BlendFunction', w, 'GL_SRC_ALPHA', 'GL_ONE_MINUS_SRC_ALPHA');
[pngImage,~,alpha] = imread('image.png'); % read in the image
pngImage(:,:,4) = alpha; % add in the alpha channel
pngTexture = Screen('MakeTexture',w, pngImage); % create image texture
これらの画像を表示すると、背景は確かに透明になります。ただし、グレースケールではなく明るい赤としても表示されます(画像へのリンク)。アルファ チャネルを追加するコード行をコメント アウトすると、背景は透明ではなくなりますが、グレースケールになります (画像へのリンク)。
セット内の画像の一部は、問題なく問題なく表示されます。これらの画像は、Photoshop でバッチ処理されました。問題のある画像は、GIMP で手作業で処理された画像のようです。ただし、画像セット全体は Psychopy で問題なく表示されます。(時間の制約といくつかの MATLAB 固有の関数が必要なため、このプロジェクトを Psychopy で作成することはできません。)
私の非常に限られた知識で推測する必要がある場合、4 番目の 2D マトリックスを画像マトリックスに追加すると、色の値を乗算する引数がオフになると言えます。しかし、方法がわかりません。誰でも何か考えがありますか?