0

人間の歩行動作の編集[Opencv 2.3検出]リンクは、C++を使用するVisualStudio2010で人間の動作を検出する方法を説明しています。テキストファイルとヘッダーとmotemp9.c一緒にソースコードをダウンロードしましたが、次のことを理解していません。walkImgs.txtoutput.txtfilter.h

このプログラムを実行するのに苦労しています。誰かがこれらの点を明確にするのを手伝ってくれますか?

  1. motiontemp9.cファイルでは、メインの下に行のファイルは存在しません。または、これらのファイルはwalkImgsと出力ですか?

    if((ReadFP=fopen("walk2.txt", "r")) == NULL) ErrorExit(ER_READ_OPEN);
    if((WriteFP=fopen("output2.txt", "w")) == NULL) ErrorExit(ER_WRITE_OPEN);
    
  2. コードの実行時に次のエラーが発生します

    error C2660: 'cvGetSeqElem' : function does not take 3 arguments
    motemp9.cpp(186): error C2227: left of '->rect' must point to class/struct/union/generic type
    motemp9.cpp(189): error C2440: '=' : cannot convert from 'CvScalar' to 'int'
    1>          No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
    motemp9.cpp(218): error C2664: 'cvCircle' : cannot convert parameter 4 from 'int' to 'CvScalar'
    1>          No constructor could take the source type, or constructor overload resolution was ambiguous
    motemp9.cpp(220): error C2664: 'cvLine' : cannot convert parameter 4 from 'int' to 'CvScalar'
    1>          No constructor could take the source type, or constructor overload resolution was ambiguous
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    

このコードを実行するために何をする必要があるかを教えてください。

4

1 に答える 1

1

私は本当にそれを理解していないので、あなたはあなたの最初の質問を再定式化できますか?

if((ReadFP=fopen("walk2.txt", "r")) == NULL) ErrorExit(ER_READ_OPEN);
if((WriteFP=fopen("output2.txt", "w")) == NULL) ErrorExit(ER_WRITE_OPEN);

これらの2行は、プログラムの実行時にファイルが存在するかどうかを確認するだけです。それらの1つが存在しない場合は、ErrorExitを返します。

2番目の質問では、この例では、

モーション履歴画像を作成します。これには、画像をグレースケールに変換し、2つのフレームの違いを順番に見つけて、モーションの階層化された履歴のシルエット画像を作成することが含まれます。実装

したがって、walk2.txtに、自分のビデオから抽出した画像のパスを入力する必要があります。

それが役に立てば幸い

于 2013-01-22T09:43:56.697 に答える