2

外ベクトル消去イテレータ私は現在、2点間剛体変換を計算しようとしているので、私はpointclouds.orgのチュートリアルによって与えられたコードを使用しようとした設定:PCL剛体変換 - エラー:範囲

http://www.pointclouds.org/documentation/tutorials/iterative_closest_point.php#iterative-closest-point

私の場合は、データをランダムに生成した部分を、分析したいポイントデータをロードする部分に変更しました。他のすべてが正確にチュートリアルのように... は、私はQtのでは動作しますので、私は統合

(私も、私は私の入力データを読み込んでsomethign間違っていた場合には、ランダムなデータと全くチュートリアルのコードをテストしてみました)ですPCLライブラリ、Eigenライブラリ、FLANNライブラリをプロジェクトに追加しました。これは、すべてのヘッダーを検索し、成功しMSVC 2008でコンパイル...

は、残念ながら、私はいつも

icp.setInputTarget(cloud_out); 

でランタイムエラーが言ってます:

Debug Assertion failed! Program: ...MSVC2008_Qt_SDK_Release\release\Project.exe File: c:\Program Files\Microsoft VIsual Studio 10.0\CV\include\vector Line: 1200

Expression: vector erase iterator outside range

[..] ... check documentation ... [..]

誰もがそれが何を意味するのか知っていますか?入力クラウドは同じサイズで、塗りつぶされた値を持っています。

助けてくれてありがとう!

UPDATE 1:

エラーメッセージは、私は本当にそれを必要としないので、だから私は、Visual Studio 2010をアンインストールしようとした... MSVC 2010(10.0)のためのいくつかのファイルパスを示しています。しかし、私がデバッグモードでコンパイルすると、エラーメッセージが表示されますが、代わりにExpression: vector iterators incompatibleと表示されます...リリースモードで実行すると、実行時に(同じ行で)クラッシュしますが、表示されませんそのエラーメッセージ。

+0

'icp'と' cloud_out'とは何ですか?デバッグアサーションはデバッグコンパイルでのみ処理されるため、リリースモードでコンパイルするとデバッグアサーションメッセージが表示されません。 – cmannett85

+0

これをデバッガで実行しようとしましたが、それをトリガしている行が見つかりましたか? – cmannett85

+0

cloud_outは、一致させるべき点群です。チュートリアルの行10を見てください。icpはIterativeClosestPointクラスのインスタンスです(37行目)。 私はそれをデバッグしようとしましたが、私は停止点などを設定することができないので、その情報を得ることができませんでした。デバッガや逆アセンブラの出力を見るだけでは助けにならなかった... VC 10.0のパスから情報を取得しようとするのは変わっていませんか?私はそれをアンインストールした後も、C:\ Program Files \ Microsoft Visual Studio 10.0もありません。 –

答えて

0

これはあなたが使用するライブラリに問題があるようです。きれいなビルドを行い、PATH変数とすべてをチェックし、Visual Studio 2010が削除されていると仮定すると、これはライブラリ自体の問題かもしれません。あなたは正しいものを使っていますか?

現在のQt SDKにはMSVC2008が含まれているので、必要な場所からすべてのものが必要になると思います。しかし、Qtのコンパイラか、あなたが使っているライブラリのいずれかが、2010バージョンを望むかもしれません...

希望すると助かります!

関連する問題