#include <opencv.hpp>
#include <Windows.h>
//#include <time.h>
#include "atlstr.h"
using namespace cv;
using namespace std;
void OutputDebugPrintf(const char* strOutputString, ...)
{
char strBuffer[4096] = { 0 };
va_list vlArgs;
va_start(vlArgs, strOutputString);
_vsnprintf_s(strBuffer, sizeof(strBuffer)-1, strOutputString, vlArgs);
va_end(vlArgs);
OutputDebugString(CA2W(strBuffer));
}
int main(int argc, char* argv[])
{
VideoCapture cap(0); // open the default camera
if (!cap.isOpened()) // check if we succeeded
return -1;
double w = cap.get(CV_CAP_PROP_FRAME_WIDTH);
double h = cap.get(CV_CAP_PROP_FRAME_HEIGHT);
double count = cap.get(CV_CAP_PROP_FPS);
Mat edges;
namedWindow("edges", CV_WINDOW_NORMAL | CV_WINDOW_KEEPRATIO | CV_GUI_EXPANDED);
cv::Point p = cv::Point(300, 20);
struct tm t; //tm结构指针
time_t now; //声明time_t类型变量
char ch[64];
clock_t tick1, tick2;
tick1 = clock();
double dt;
for (;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
/*cvtColor(frame, edges, COLOR_BGR2GRAY);
GaussianBlur(edges, edges, Size(7, 7), 1.5, 1.5);
Canny(edges, edges, 0, 30, 3);
imshow("edges", edges);*/
//加上字符的起始点
time(&now); //获取系统日期和时间
localtime_s(&t, &now);//获取当地日期和时间
int len = strftime(ch, sizeof(ch), "%Y-%m-%d %H:%M:%S", &t); //年-月-日 时-分-秒
ch[len] = '\0';
putText(frame, ch, p, FONT_HERSHEY_SIMPLEX, 0.8, Scalar(255, 200, 200), 1, CV_AA);
tick2 = tick1;
tick1 = clock(); //ms
dt = (double)(tick1 - tick2);
OutputDebugPrintf("dt = %lf ms\n", dt);
imshow("edges", frame);
if (waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}
Opencv 调用摄像头显示视频并添加时间戳水印
猜你喜欢
转载自blog.csdn.net/zzqgtt/article/details/81208566
今日推荐
周排行