MATLAB コードは、 、、 ... 、background
の cell 配列を作成することにより、グレースケール イメージの一部をサンプリングします。こことは、画像の半分のサイズです。backgroundSample{1}
backgroundSample{2}
backgroundSample{9}
halfRows
halfCols
backgroundSample
は 9 つの 2 次元行列を含む配列です。このコードを C/C++ で記述する方法に戸惑いました。backgroundSample{i}
のようなものを使用する要素を取得できますbackgroundSample[i].elements[m][n]
か?
MATLAB コード:
offset = [-60, -20, 20, 60];
for i = 1: 1: 3
for j = 1: 1: 3
backgroundSample{(i - 1) * 3 + j} =
background(halfRows + offset(i): halfRows + offset(i + 1), ...
halfCols + offset(j): halfCols + offset(j + 1));
end;
end;
編集: MATLAB で
簡単に行列を割り当てることができるため。A = B
たとえば、backgroundSample{1} = background(60: 100, 60: 100)
私の質問とこの割り当てでは、i: 1→3 と j: 1→3 のループにあります。ただし、C/C++ で行列を割り当てる場合は、すべての要素を 1 つずつ割り当てる必要があります。多分このように:
for(int i = 0; i < 3; i++)
for(int j = 0; n < 3; j++)
// to get every elements
for(int m = 0 ...)
for(int n = 0 ...)
// not sure whether there is such usage of "->" in array
backgroundSample[(i - 1) * 3 + j]->elements[m][n] = background[i iteration][j iteration]
backgroundSample[m][n]
そのため、行列とのインデックス間に競合がありbackground[i][j]
ます。問題を解決するにはどうすればよいですか?