📄 getpos.cpp
字号:
// getPos.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
//自定义头文件
#include "highgui.h"
#include "DSCamera.h"
//#include "GLWindow.h"
//#include "proc.h"
#include "ImageProcess.h"
////////////////////////////////////////////////////////
//初始化变量
////////////////////////////////////////////////////////
//char *vconf1 = "WDM_AVI.xml";//AVI配置文件
char *vconf1 = "WDM_camera.xml";//摄像机配置文件
////////////////////////////////////////////////////////
char *WNDName = "窗口1";//窗口名称
DSCamera cam1("0");//摄像机对象
DSCamera cam2("0");//摄像机对象
unsigned char* imgCamera1;
IplImage *image1;
CImageProc IP1;
int init(bool isShowWindow);
//输出函数
//初始化系统
extern "C" __declspec(dllexport) int BeginSystem()
{
return init(false);
}
//获取计算结果Ex
extern "C" __declspec(dllexport) void GetPos(double &x,double &y,double ScreenWidth,double ScreenHeight)
{
//获取摄像机图像
if( (imgCamera1=cam1.GetImage()) == NULL )
{
//cam1.Sleep(2);
}
else
{
//转换图像格式
image1->imageData=(char*)imgCamera1;
//循环处理
//IP1.proc(image1,Pout,sence);
IP1.proc(image1,x,y,ScreenWidth,ScreenHeight);
//cvShowImage(WNDName, IP1.proc(image1,x,y,ScreenWidth,ScreenHeight));
cam1.VideoCapNext();
}
}
//结束摄像机
extern "C" __declspec(dllexport) int EndSystem()
{
cam1.Close();
//CleanupCameara();
return 1;
}
//////////////////////////////////////////////////////////////////////////
//初始化函数
int init(bool isShowWindow)
{
//初始化摄像机
cam1.init(vconf1);
//初始化摄像机
if(cam1.RunCamera()==-1)
{
MessageBox(NULL,"摄像机配置文件错误!","",MB_OK);
return 0;
}
// //初始化图像内存
imgCamera1=(unsigned char*)malloc(4*sizeof(char)*cam1.width*cam1.height);
image1= cvCreateImage( cvSize(cam1.width,cam1.height), 8, 4 );
//初始化窗口
if(isShowWindow)
{
cvNamedWindow(WNDName, 1 );
cvResizeWindow(WNDName,cam1.width,cam1.height);
}
return 1;
}
double gl_para[16];
int iii=0;
int _tmain(int argc, _TCHAR* argv[])
{
int ConfigNumber=0;
double PL1[12]={-1};
double PL2[12]={-1};
//初始化
if(init(true)==0)return 0;
//主循环
for(;;)
{
if( cvWaitKey(10) >= 0 )
break;
//Sleep(2);
//获取摄像机图像
if( (imgCamera1=cam1.GetImage()) == NULL )
{
cam1.Sleep(2);
}
else
{
//转换图像格式
image1->imageData=(char*)imgCamera1;
double x=0;
double y=0;
//循环处理
cvShowImage(WNDName, IP1.proc(image1,x,y,800,600));
cam1.VideoCapNext();
// cvWaitKey(0);
}
}
cvWaitKey(0);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -