OPENCV读取视频并播放
#include "stdafx.h"
#include "highgui.h"
int main( int argc ,char ** argv){
CvCapture * capture = cvCreateFileCapture ("tree.avi"); //读取视频
if(capture==NULL) {
printf("NO capture"); //读取不成功,则标识
return 1;
};
double fps=cvGetCaptureProperty(capture, CV_CAP_PROP_FPS ); //读取视频的帧率
int vfps = 1000 / fps; //计算每帧播放的时间
printf("%5.1f\t%5d\n",fps,vfps);
double frames=cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_COUNT);//读取视频中有多少帧
printf("frames is %f\n",frames);
cvNamedWindow("example",CV_WINDOW_AUTOSIZE); //定义窗口
IplImage * frame;
while(1){
frame = cvQueryFrame( capture ); //抓取帧
float ratio = cvGetCaptureProperty(capture, CV_CAP_PROP_POS_AVI_RATIO); //读取该帧在视频中的相对位置
printf("%f\n",ratio);
if(!frame)break;
cvShowImage("example",frame); //显示
char c = cvWaitKey(vfps);
if(c == 27 )break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("example");
}
2013年9月12日星期四
2013年5月2日星期四
VC2005 如何取得控件位置
RECT rectDlg;
GetDlgItem( IDC_XXX )->GetWindowRect( &rectDlg );//IDC_XXX 为控件的ID
ScreenToClient( &rectDlg );
转化后的rectDlg就为控件在主Dialong中的位置
GetDlgItem( IDC_XXX )->GetWindowRect( &rectDlg );//IDC_XXX 为控件的ID
ScreenToClient( &rectDlg );
转化后的rectDlg就为控件在主Dialong中的位置
printf 格式
フォーマット指定子一覧
フォーマット指定子とは、C言語のprintf()、fprintf()、sprintf()、scanf()、fscanf()、sscanf()などの関数で使用する、 表示形式を指定するための記述子である。C言語専用と思っていると、MFC(C++)のCStringクラスやjavaのFormatterクラス(jdk1.5以降)にも使用されていたりして、 やはりしっかり覚えておかなくては、と思わせられることもある(詳細は異なるが)。 度忘れした際にはここを見ればよいように、よく使うフォーマット指定子をここにまとめておく。 なお、ANSI規格での全貌を知りたいときは、fprintfのリファレンス等を参照のこと。
出力フォーマット指定子
printf(),fprintf(),sprintf()などで使用する指定子である。
|
表示桁数の指定
表示桁数は<全体の幅>.<小数点以下の幅>で指定する。どちらか片方だけの指定でも良いし、まったく指定しなくても良い。指定がなければデフォルトが使用される。 <小数点以下の幅>は、文字列の場合には最大文字数の意味になる。指定例 | 出力結果 | |
---|---|---|
printf("[%8.3f]", 123.45678);
| [ 123.456]
| |
printf("[%15s]", "I am a boy.");
| [ I am a boy.]
| |
printf("[%.6s]", "I am a boy.");
| [I am a]
| |
printf("[%8.3e]", 1234.5678);
| [1.234e+3]
|
リーディングゼロの指定
数値フィールドの場合に、ゼロ詰めを指定することができる。桁数の指定のまえにゼロを付加する。指定例 | 出力結果 | |
---|---|---|
printf("[%08.3f]", 123.45678);
| [0123.456]
| |
printf("[%05d]", 1);
| [00001]
|
右詰・左詰の指定
デフォルトでは右詰なので、左詰にしたいときは桁数指定のまえにマイナスをつけなければならない。指定例 | 出力結果 | |
---|---|---|
printf("[%-15s]", "I am a boy.");
| [I am a boy. ]
| |
printf("[%-8.3f]", 123.45678);
| [123.456 ]
| |
printf("[%-5d]", 1);
| [1 ]
|
符号の指定
数値の表示は、デフォルトではプラス記号を出さないので、付けたいときは+を指定する。指定例 | 出力結果 | |
---|---|---|
printf("[%+5d]", 32);
| [ +32]
| |
printf("[%+5d]", -32);
| [ -32]
| |
printf("[%+8.3f]", 1.414);
| [ +1.414]
|
入力フォーマット指定子
scanf(),fscanf(),sscanf()などで使用する指定子である。出力フォーマット指定子とほぼ同じだが、使えないものもある。
|
订阅:
博文 (Atom)