增加参数: 相机2像素尺寸

同兴达改信利
bestlqiang 2 years ago
parent 497132a941
commit 3f86356efc

@ -12,6 +12,7 @@
CCamera::CCamera(void) CCamera::CCamera(void)
{ {
m_OnePixDis = 1;//一个像素对应的实际尺寸(mm/pix) m_OnePixDis = 1;//一个像素对应的实际尺寸(mm/pix)
m_OnePixDis2 = 1;//一个像素对应的实际尺寸(mm/pix)
m_bIni = false;//是否初始化成功 m_bIni = false;//是否初始化成功
m_bRotatoPtByAngle = false;//是否根据相机的安装角度修正抓取结果 m_bRotatoPtByAngle = false;//是否根据相机的安装角度修正抓取结果
m_Angle = 0; m_Angle = 0;
@ -204,7 +205,25 @@ CMFCPropertyGridProperty *CCamera::CreatGridProperty()
gDevicePropertieMgr.Insert(p1, pPropertie); gDevicePropertieMgr.Insert(p1, pPropertie);
} }
{
//添加属性变量映射
Name = _T("m_OnePixDis2");//变量名字
CPropertie *pPropertie = new CPropertie;
pPropertie->SetpVal((void*)&m_OnePixDis2);
pPropertie->SetType(_PROP_TYPE_DOUBLE);
pPropertie->SetpModule(this);
pPropertie->SetPath(Path);
pPropertie->SetName(Name);
pPropertie->WriteRead(true);//读取保存的属性
//添加属性显示
PropertyName = _T("像素尺寸2");
Description = _T("相机2一个像素对应的实际尺寸单位是(mm/像素)");
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_OnePixDis2, Description);
pGroup->AddSubItem(p1);
gDevicePropertieMgr.Insert(p1, pPropertie);
}
{ {
//添加属性变量映射 //添加属性变量映射
@ -334,6 +353,7 @@ void CCamera::ExportPar(ofstream *pFile)
(*pFile)<<"[CCD 坐标x][m_Coord.x] = "<<m_Coord.x<<endl; (*pFile)<<"[CCD 坐标x][m_Coord.x] = "<<m_Coord.x<<endl;
(*pFile)<<"[CCD 坐标y][m_Coord.y] = "<<m_Coord.y<<endl; (*pFile)<<"[CCD 坐标y][m_Coord.y] = "<<m_Coord.y<<endl;
(*pFile)<<"[像素尺寸(mm/pix) ][m_OnePixDis] = "<<m_OnePixDis<<endl; (*pFile)<<"[像素尺寸(mm/pix) ][m_OnePixDis] = "<<m_OnePixDis<<endl;
(*pFile) << "[像素尺寸2(mm/pix) ][m_OnePixDis2] = " << m_OnePixDis2 << endl;
} }
void CCamera::Draw(CDC* pDC) void CCamera::Draw(CDC* pDC)
@ -426,8 +446,10 @@ Dbxy CCamera::CCDcoord2Platformcoord(Dbxy CCDpt)
CCDpt.x = CCDpt.x - (m_Size.w / 2); CCDpt.x = CCDpt.x - (m_Size.w / 2);
CCDpt.y = (m_Size.h / 2)- CCDpt.y; CCDpt.y = (m_Size.h / 2)- CCDpt.y;
CCDpt.x *= m_OnePixDis; double OnePixDis = m_CamIndex==0?m_OnePixDis: m_OnePixDis2;
CCDpt.y *= m_OnePixDis;
CCDpt.x *= OnePixDis;
CCDpt.y *= OnePixDis;
} }
LogStr.Format(_T("[MM_Coordx] = [%0.3f] ,[MM_Coordy] = [%0.3f]"),CCDpt.x,CCDpt.y); LogStr.Format(_T("[MM_Coordx] = [%0.3f] ,[MM_Coordy] = [%0.3f]"),CCDpt.x,CCDpt.y);
gLogMgr->WriteDebugLog(LogStr); gLogMgr->WriteDebugLog(LogStr);

@ -30,6 +30,7 @@ protected:
bool m_bUse;//是否使用 bool m_bUse;//是否使用
bool m_bIni;//是否初始化成功 bool m_bIni;//是否初始化成功
double m_OnePixDis;//一个像素对应的实际尺寸(mm/pix) ,通常需要定标得到这个值,不是所有的CCD 都会使用这个值,像基恩士的就是在其内部处理的 double m_OnePixDis;//一个像素对应的实际尺寸(mm/pix) ,通常需要定标得到这个值,不是所有的CCD 都会使用这个值,像基恩士的就是在其内部处理的
double m_OnePixDis2;//一个像素对应的实际尺寸[相机2]
bool m_bLeftTop;//基准点是否为左上角(false 为左下角) bool m_bLeftTop;//基准点是否为左上角(false 为左下角)
bool m_bPixCoord;//相机抓取的是否为像素坐标(基恩士返回的是mm 单位的值) bool m_bPixCoord;//相机抓取的是否为像素坐标(基恩士返回的是mm 单位的值)

Loading…
Cancel
Save