イメージを9個の同等またはほぼ等しいパーティションに分割し、それぞれのパーティションをアレイに格納する必要があります。したがって、最終的な結果は、配列の各要素が画像のパーティションを表す2x2配列である配列の配列のようになります。これまでのところ、私は次のコードを考え出しました。パーティションイメージを9個の等しいまたはほぼ等しいパーティションに分割:Matlab
function [ outputImageRectangles ] = getImagePartitions(inputImage)
%Write the code to partition image into 9 equal or nearly equal size
%rectangles
[height, width] = size(inputImage);
partitions = zeros(3,3);
for i=0:2
for j=0:2
loweri = floor(i*height/3)+1;
higheri = floor((i+1)*height/3);
lowerj = floor(j*width/3)+1;
higherj = floor((j+1)*width/3);
x = i+1;
y = j+1;
loweri
higheri
lowerj
higherj
partitions(x,y,:,:) = inputImage(loweri:higheri, lowerj:higherj);
end
end
outputImageRectangles = partitions;
end
私はパーティショニングのプロセスはうまくいくと思っていますが、各パーティションを配列要素に格納するのに問題があります。私は非常にmatlabには新しく、ちょうどそれを把握しようとしています。私は配列要素として別の配列を含むことができるセル配列についても少し読んでいます。これまでのところ、このコードでは、配列の寸法の不一致があるため、明らかに、このコードでエラーが表示されます。
partitions(x,y,:,:) = inputImage(loweri:higheri, lowerj:higherj);
私の質問は、パフォーマンスをあまり低下させずにこのタスクを実行する方法です。この機能は12000を超えるイメージに対して呼び出されるため、パフォーマンスが重要です。
私は 'partitions'の4Dインデックス作成の目的を理解していません、あなたはさらに説明できますか?最終的な結果は、潜在的に異なるサイズの9画像ではないでしょうか?これを保存する最良の方法は、 'partitions {x、y} = ...'のようなセル配列です。ただし、4Dが意味するところがない場合は、 –
その4Dは正しい方法を知らないので意味がありません。私は 'パーティション(x、y、:)'を試したが、まだエラーが出た。 –
あなたは私が提案したものを試しましたか? –