2013-02-22 101 views
1

我正在將使用舊的OpenCV包裝的應用程序轉換爲EmguCV(更新和非常好的包裝)。在emguCV中是否提供了cvCreateTrackbar?

到目前爲止,除了在我的課程中,我使用3個軌道條來調整某些過濾器的閾值。在跟蹤條使用舊包裝物,它究竟是如何在OpenCV的C++創建此代碼創建

cvlib.cvCreateTrackbar("minH", "Couleur", ref dValueMin, 256, new cvlib.CvTrackbarDelegate(onTrackbarSlide)); 

的跟蹤條使用OpenCV的ANS的跟蹤條的HighGui分別對 可見創建我敢肯定, Emgu團隊從包裝中刪除它,並用更好的東西替換它,但在文檔中我找不到任何關於此的信息。任何人都可以建議我如何實現這一目標?

謝謝!

P.S:我已經使用了這個,所有的問題都沒有答案......我希望在Stack Overflow有更多的運氣。

回答

1

如果仍然相關

public delegate void CallbackDelegate(int pos); 
[DllImport("opencv_highgui249", CallingConvention = CallingConvention.Cdecl, EntryPoint = "cvCreateTrackbar")] 
public static extern int CvCreateTrackbar([MarshalAs(UnmanagedType.LPStr)] String trackbar_name, [MarshalAs(UnmanagedType.LPStr)] String window_name, 
     [In,Out] ref int value, int count, [MarshalAs(UnmanagedType.FunctionPtr)] CallbackDelegate callbackPtr); 

public static IntPtr capture = IntPtr.Zero; 

public static void myTrackbarCallback(int pos) 
    { 
     CvInvoke.cvSetCaptureProperty(capture, Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_POS_FRAMES, pos); 
    } 

... 
CallbackDelegate cbd = new CallbackDelegate(myTrackbarCallback); 
... 
CvCreateTrackbar("Position", "original", ref currentPosition, frames, cbd); 
+0

會嘗試,在幾個星期!我已經改變了一段時間的項目,並會回來。別擔心,如果它有效,我會獎勵你的答案。謝謝! – 2013-07-15 12:13:41