私はwinformを使用してVS2012に基づくKinectアプリケーションを開発しています。いくつかのメソッドを試した後でも、あるクラスから別のクラスに値を渡すことができませんでした。
基本的に、パブリックMainWindow()
、パブリックパーシャルFaceTrackingViewer()
、パブリックの3つのクラスがありSkeletonFaceTracker()
ます。最後のクラスはFaceTrackingViewer()
クラスにあります。
SkeletonFaceTracker()には、次のものがあります。
public bool lastFaceTrackSucceeded { get; set; }
internal void OnFrameReady(KinectSensor kinectSensor, ColorImageFormat colorImageFormat, byte[] colorImage, DepthImageFormat depthImageFormat, short[] depthImage, Skeleton skeletonOfInterest)
{
// something else
if (this.faceTracker != null)
{
this.lastFaceTrackSucceeded = frame.TrackSuccessful; //where it's set to be true.
//something else
}
}
また、最初の行を次のように変更しようとしました。
public bool lastFaceTrackSucceeded;
public bool LastFaceTrackSucceeded
{
get { return lastFaceTrackSucceeded; }
private set { lastFaceTrackSucceeded = value; }
}
でも2つは同じだと思います。
MainWindow()には、次のものがあります。
public partial class MainWindow : Window
{
//some other irrelevant code snippets
private FaceTrackingViewer.SkeletonFaceTracker skeletonFaceTracker = new FaceTrackingViewer.SkeletonFaceTracker();
private void button_faceOnly_Click(object sender, RoutedEventArgs e)
{
bool faceTrackSucceeded = skeletonFaceTracker.lastFaceTrackSucceeded;
// if I use the second structure in SkeletonFaceTracker(), it should be:
// bool faceTrackSucceeded = skeletonFaceTracker.LastFaceTrackSucceeded;
if (faceTrackSucceeded == true )
{
//do something
}
}
}
ただし、またはinがである場合でも、bool faceTrackSucceeded
は常にです。私は非常に混乱していて、どこがうまくいかなかったのかわかりません。false
lastFaceTrackSucceeded
LastFaceTrackSucceeded
SkeletonFaceTracker()
true
FaceTrackingViewer()
すべてのビデオ処理と顔追跡アクションはクラスで行われることに注意してください。いくつかのパラメータと構造をに渡したいだけですMainWindow()
。
ありがとうございました