2

所有していない画像があり、隣接するモノクロピクセルがあり、現在、ダムポインタインクリメントで反復しています。

現在、2D領域を反復処理する必要があるため、効率的で記述しやすい反復子を提供するための最良の方法を考えています。

forward_iteratorだけが必要です。10x10の画像があり、左上の4x3の領域で反復する場合は、次の要素で反復します。

0 1 2 3 10 11 12 13 20 21 22 23

私には2つの選択肢があります:

  • 手で書くboost::iterator_facade
  • を使用しますboost::range_iterator。これにより、配列に対するイテレータが得られ、その動作を次のように変更します。boost::iterator_adaptor

何が一番いいと思いますか?

4

1 に答える 1

3

2つの概念があります。(i)サブイメージと(ii)イメージ上の1次元イテレータです。

vil_image_viewまず、VXLライブラリを見てみましょう。

これにより、画像データの概念がデータの表現(ビュー)から分離されます。ビューはistepjstepamdplanestep増分、およびピクセルインデックスを提供します。vil_image_views同じ基になるデータから、トリミングされた画像を表すために異なるものを作成できます。このライブラリはSTLと部分的にしか互換性がなく、優れたSTL実装は興味深いものですが、STLで2Dイテレータを実装するためのクリーンな方法がわかりません。

于 2011-11-21T11:58:33.610 に答える