Octaveで画像にパーティクルを簡単に追加する機能を書いていますが、問題があります。Octaveは画像をimread()したくないと思っています
function [ out ] = enparticle(mainImg, particleNames, particleData, frames, fpp, sFrame, eFrame)
%particleData format:
% [ p1Xline p1StartHeight p1EndHeight;
% p2Xline p2StartHeight p2EndHeight;
% p3Xline p3StartHeight p3EndHeight;
% ... ]
%particleNames format:
% [ p1Name;
% p2Name;
% p3Name;
% ... ]
pAmount = size(particleData, 1);
for i= 1:pAmount
tmp = particleNames(i,:)
[ pIMG pMAP pALPHA ] = imread(tmp);
end
end
私は
enparticle("ffield.png", [ "p_dot.png"; "p_star.png"; "p_dot.png" ], [ 100 50 100; 200 50 100; 300 50 100 ], 30, 10, 5, 25)
と、この単純なコードを実行すると、私は私が(IMREADしようとすると、これはコンソール
tmp = p_dot.png
error: imread: unable to find file p_dot.png
error: called from
imageIO at line 71 column 7
imread at line 106 column 30
enparticle at line 24 column 23
で書かれ得る)ことがあり、Octaveは考えて、この方法を提出このような名前のファイルはありません。しかし、それは実際にです。スクリプトファイルと同じフォルダにあります。
最も好奇心が強い事は、私が
tmp = particleNames(:,:)
に
tmp = particleNames(i,:)
を変更し、Octaveが配列としてtmpにするすべての名前を割り当てると、それは魔法のように渡された名前を持つすべてのファイルを見つける、ということです。
しかし、すべてのファイルが置き換えられたり、マージされたり、画像処理に合わせてsthされたりするので、私が動作させたいのではありません。
このようにしているのはなぜか事実と一致しているのですが、私は各フレーム(画像とアルファ)を別々にセル配列に入れたいと思っています。
私は完全に私が間違って何をすべきかについての手掛かりを持っていないとどこにもまた、それをグーグルことができません:(
私はちょうどそれを発見し、ここに書きたかったが、あなたは最初にあってきました; D おかげでたくさんのお時間を過ごし、解決:) –