タイマー:OpenCV 版

2017-02-24 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
前(2017-02-22)の記事「タイマー:IupTimer 版」では、
IUP(Portable User Interface) には、IupTimer があるので、
Win32API に頼らずに タイマー 機能が使えた。


今回は、
OpenCV”で窓を出している状況で、
“タイマー”機能を使うには?
について学習。

“OpenCV”には、IupTimer の様な関数が無い?
なので、SetTimer を使う?

こんな感じ:
----------------------- test_Timer_OpenCV.gsl
cv2 = require'cv2'
NULL=voidA(0)
ffi.cdef[[
typedef void ( __stdcall* T_Proc )( void* hWnd, int Msg, int id, int time );
int SetTimer( void* hWnd, // window handle
int nIDEvent, // timer ID
int uElapse, // time-out value ( ms )
void* func ); // callback function
]]
-----------------------------------------
TCB = ffi.cast( 'T_Proc', function( a, b, c, d )
i=i+1; print( i, a, b, c, d ) -- i, NULL, 275, aaa, time
end )
i=0
aaa=ffi.C.SetTimer( NULL, 0, 200, TCB )
print(aaa)

img = cv2.cvCreateMat( 2, 2, 0 )
cv2.cvNamedWindow( charA('dmy'), 0 )

cv2.cvShowImage( charA('dmy'), img )
cv2.cvWaitKey(0)

cv2.cvDestroyAllWindows() -- 後処理
print( i ) -- 確認
でしょうか?


でも、いずれ
-- ・・・・・
-- ・・・・・
while true do
cv2.cvShowImage( charA('dmy'), img )
cv2.cvWaitKey(50)
-- ・・・・・
-- ・・・・・
end
-- ・・・・・
-- ・・・・・
の様に、
(例えば、50mSの)インターバルでループするものなので、
そのループ内で(コールバック相当の)関数を呼べばよい。
つまり、
改めて“タイマー”機能を使う必要が無いかも。


本日はここまで。


タイマー 学習は続く?


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170129,0202
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
02 | 2017/03 | 03
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク