2016-03-27 17 views
-1

私は3つの異なるベクトル(各色に1つ)で画像のRBGを維持する必要があります。次に、すべてのベクトルについて、私はそれらの中に見つかった[0,255]の間隔ですべてのピクセルの瞳孔の数を数えます。この[0; 255](ピクセル範囲)の間隔をN間隔に分割し、次の式を使用して、各間隔の合計を計算します。インデックスの範囲外Matlab

[x * 256/N; X * 256/N + 256/N)xは

< = N

Nは残りのため、256を分割 はこれまでのところ、私のコードは、Nのために働く16に等しいの大きいI "Index out of bound"を取得します。 私は数式の実装が何とか間違っていると思います。私はそれを修正する方法を知らない。

+0

最初に見たところ、 'histc'や' accumarray'を使ってみてください – Amro

+0

@Amro histcを使わずにこのタスクを完了しなければなりません – user3629077

+0

何が許可されていますか? – Amro

答えて

1

int16(256/N)で四捨五入されているため、「範囲外のインデックス」が発生します。

N = 16 ... int16(256/N) = 16 (no rounding) 
N = 19 ... int16(256/N) = 13 (13.47 is rounded to 13) 
N = 20 ... int16(256/N) = 13 (12.80 is rounded to 13) 

は時々、結果は(あなたが境界の外に出たときにそれがある)次の小さな値に、時には次の大きな値に丸められます。

ソリューション:int16(256/N)の代わりにfloor(256/N)を使用してください。

関連する問題