私はmatlabを初めて使用するので、これがばかげた質問である場合は申し訳ありません。私は次のマトリックスをしなければなりません:
im = imread('image.jpg'); %<370x366 double>
[y,x] = find(im); %x & y both <1280x1 double>
theta; %<370x366 double> computed from gradient of image
現在、次のように一度に1つずつポイントをプロットできます。
plot(x(502) + 120*cos(theta(y(502),x(502))),y(502) + 120*sin(theta(y(502),x(502))));
しかし、私がやりたいのは、アキュムレータ配列をどのようにインクリメントするかです。その場所の値が見つかるたびに、accの場所を1ずつインクリメントしたいと思います。
したがって、x(502)+ 120 * cos(theta(y(502)、x(502)))、y(502)+ 120 * sin(theta(y(502)、x(502))=(10、 10)次に、acc(10,10)を1ずつ増やす必要があります。非常に大きなデータセットを使用しているため、forループを避け、次のようなものを使用します。
acc = zeros(size(im));
%increment value when point lands in that location
acc(y,x) = acc(x + 120*cos(theta(y,x)),y + 120*sin(theta(y,x)),'*b')) + 1;
120が実際には、異なる半径値を含む別のマトリックスである可能性があると便利です。