私はここ数か月、顔追跡システムに取り組んできましたが、パフォーマンスを向上させるためにすべてを並行して実行する必要があります。
メインの cpp ファイルは次のとおりです。
int _tmain(int argc, _TCHAR* argv[])
{
cFrame.initCamFrames(20, 1600, 1200, 3); //INITIATES BUFFER FOR CAM FRAMES, 20 frames, res:1600x1200, 3bytes per pixel.
eyeTracking.initTrackingSystem(&cFrame); //INITIATES EYETRACKING SOFTWARE WITH POINTER TO THE BUFFER WHERE EYETRACKINGSOFTWARE GETS THE FRAMES TO SEARCH WITHIN. (opencv)
directShow directShowClass;
directShowClass.initiateDirectShow(false, &cFrame); //INITIATES DIRECTSHOW WITH POINTER TO BUFFER WHERE IT SHOULD SAVE FRAMES FROM CAM
directShowClass.runDirectShow(); //START CAPTURING FRAMES INTO BUFFER
eyeTracking.runTrackingSystem(); //START SEARCH FOR FACE AND EYES.
system("pause");
directShowClass.stopDirectShow();
}
「directShowClass.runDirectShow();」が欲しい および「eyeTracking.runTrackingSystem();」実際に並行して実行します。今では、疑似並列のスレッドとして実行されていると思います。(各メソッドの単純な printf はターミナルで混同して発生します)。
プログラムを並行して実行することは、私が望んでいるほど単純ではないと思います。しかし、私はそれが可能だと思います:D
並列化する方法に関する情報の検索をどこから開始すればよいかアドバイスをください。
デュアル コア プロセッサを使用しています。
ありがとう!