You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
TwoLaserHead-PushJig/LaiPuLaser/Camera.h

54 lines
2.3 KiB
C++

#pragma once
#include "GlobalDefine.h"
#include "module.h"
class CCamera:public CModule
{
public:
CCamera(void);
virtual ~CCamera(void);
virtual CMFCPropertyGridProperty *CreatGridProperty();
virtual void ExportPar(ofstream *pFile);
virtual void Draw(CDC* pDC);
virtual bool CatchPoint(Dbxy &pt){return false;};
virtual Dbxy GetCoord();// {return m_Coord;};
virtual Dbxy CCDpt2Platcoord(Dbxy CCDpt);
virtual Dbxy GetCenterPt();
void SetCoord(Dbxy pt);
void SetCamIndex(int index) { m_CamIndex = index; };//设置相机索引0,1
int GetCamIndex() {return m_CamIndex ; };//获取相机索引0,1
bool IsOpen() { return m_bOpen; };
void SetbOpen(bool bOpen) { m_bOpen=bOpen; };
Dbxy CCDcoord2Platformcoord(Dbxy CCDpt);
bool CatchPtToPlatformcoord(Dbxy &pt);
double GetOnePixDis(){return m_OnePixDis;};
double GetAngle(){return m_Angle;};
int GetCatchFrontDelay(){return m_CatchFrontDelay;};
protected:
bool m_bUse;//是否使用
bool m_bIni;//是否初始化成功
double m_OnePixDis;//一个像素对应的实际尺寸(mm/pix) ,通常需要定标得到这个值,不是所有的CCD 都会使用这个值,像基恩士的就是在其内部处理的
double m_OnePixDis2;//一个像素对应的实际尺寸[相机2]
bool m_bLeftTop;//基准点是否为左上角(false 为左下角)
bool m_bPixCoord;//相机抓取的是否为像素坐标(基恩士返回的是mm 单位的值)
public:
Dbxy m_Coord;//CCD 视场基准点相对于平台原点的坐标值(一般是左上角,或者左下角)
Dbxy m_Coord2;//信利双头,有两个相机,此为CCD2坐标
DbSize m_Size=DbSize(2592,1944);//CCD 视场范围的实际尺寸(用来计算抓取定位的坐标值)
bool m_bRotatoPtByAngle;//是否根据相机的安装角度修正抓取结果
double m_Angle;//安装角度,相对于电机的X 轴(360 度角)
bool m_bCatch;//实际抓取
int m_CamIndex=0;//相机索引(信利 0 1)
bool m_bOpen = false;
int m_CatchFrontDelay;//抓取前延时ms
int m_CatchWaitDelay;//抓取等待延时ms
};