画像 double(800x450x3) を使用していますが、特定の条件が満たされている場合は、ピクセルの値を変更したいと考えています。しかし、私が最初に持っていたコードは機能し、良いイメージを与えてくれます。最適化しようとすると、前のケースではまったくないのに、画像が本当に奇妙な色 (赤/紫/青など) になります。
最初に私はコードを持っていました:
diff = abs(double(rgbimage) - double(backgroundImage));
fusion = zeros(size(currentFrame));
for i=1:size(backgroundImage,1)
for j = 1:size(backgroundImage,2)
if diff(i,j) > 20
fusion(i,j, :) = double(rgbimage(i,j, :));
else
fusion(i,j, :) = 0;
end
end
end
そして私はそれを次のように最適化しました:
diff = abs(double(rgbimage) - double(backgroundImage));
fusion = zeros(size(currentFrame));
indexes = diff > 20;
fusion(indexes) = double(rgbimage(indexes));
...そして、プロットした後
subplot(2,1,1), subimage(uint8(fusion));
title('Fusion');
違いは何ですか?なぜこのエラーが発生するのですか? ありがとう!