私は、(512 x 512)のイメージを、イメージの上の行を持つ(128 x 128)イメージの4つのセグメントにセグメント化しようとしています。次に並列parforループを実行しようとしています。しかし、そうすることはできません。ここに私のコードです。ParIf Loop内でFinalImage変数を使用するには?
FinalImage = ones(512,512);
%visiblity function initialization, see equation (4)
parfor imageSegment = 1:8;
img = double(imread([filename '.jpg']))./255;
img = im2bw(img);
if imageSegment == 1
img = img(1:128,1:128);
[nrow, ncol] = size(img);
elseif imageSegment == 2
img = img(1:128,129:256);
[nrow, ncol] = size(img);
elseif imageSegment == 3
img = img(1:128,257:384);
[nrow, ncol] = size(img);
elseif imageSegment == 4
img = img(1:128,385:512);
[nrow, ncol] = size(img);
for nMethod = 3:3;
//Some code
end
end
imwrite(FinalImage, gray(256), [filename '_FinalImage_' num2str(nMethod) '.bmp'], 'bmp');
fprintf('close');
parforループ内でのfinalImage変数の使用方法??
各サブ画像の最初の行を複製したいと思っていますが、最後の4つの画像の寸法についてはあまりよく分かりません。 512 * 512イメージを512 * 128の4つのサブイメージにスライスしますか?また、 'im2ar'の代わりに' imbinarize'を使用してください.Matlabはそれを使用することをお勧めしません。 – hmofrad
私は唯一のorignalイメージの上の行が必要です.4セグメントの128 x 128 –
率直に言って、私はあなたがこれを行うために 'parfor'を使う必要はないと思います。私はi5 CPUを持っており、以下のコードの 'for'実装では' 0.018 '、 'parfor'では' 0.12'で遅いです。 – hmofrad