⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getpos.cpp

📁 用于系统跟踪的程序
💻 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 + -