|
|
|
|
|
#include "stdafx.h"
|
|
|
#include "LaiPuLaser.h"
|
|
|
#include "DlgDnCutCamera.h"
|
|
|
#include "afxdialogex.h"
|
|
|
#include "MsgBox.h"
|
|
|
#include "AuthorityMgr.h"
|
|
|
#include "FileMgr.h"
|
|
|
#include "LogMgr.h"
|
|
|
#include "CommonFlowMgr.h"
|
|
|
#include "CameraHawkvis.h"
|
|
|
#include "ProgramCutMgr.h"
|
|
|
#include "PropertieMgr.h"
|
|
|
|
|
|
#include "SmartArchive.h"
|
|
|
#include <opencv2/opencv.hpp>
|
|
|
#include <opencv2/highgui.hpp>
|
|
|
#include <opencv2/imgproc/imgproc.hpp>
|
|
|
#include <opencv2/imgproc/types_c.h>
|
|
|
using namespace cv;
|
|
|
|
|
|
DlgHawkvisCamera *gDlgHawkvisCamera;
|
|
|
|
|
|
IMPLEMENT_DYNAMIC(DlgHawkvisCamera, CDialogEx)
|
|
|
BEGIN_MESSAGE_MAP(DlgHawkvisCamera, CDialogEx)
|
|
|
ON_WM_TIMER()
|
|
|
ON_BN_CLICKED(IDC_OPEN_CAM, &DlgHawkvisCamera::OnBnClickedOpenCam)
|
|
|
ON_BN_CLICKED(IDC_FRAME_ONE, &DlgHawkvisCamera::OnBnClickedFrameOne)
|
|
|
ON_BN_CLICKED(IDC_FRAME_CONTINUE, &DlgHawkvisCamera::OnBnClickedFrameContinue)
|
|
|
ON_BN_CLICKED(IDC_READ_BMP, &DlgHawkvisCamera::OnBnClickedReadBmp)
|
|
|
ON_BN_CLICKED(IDC_SAVE_BMP, &DlgHawkvisCamera::OnBnClickedSaveBmp)
|
|
|
ON_BN_CLICKED(IDC_CREAT_CATCH_TEMP, &DlgHawkvisCamera::OnBnClickedCreatCatchTemp)
|
|
|
ON_BN_CLICKED(IDC_SET_EXPORE, &DlgHawkvisCamera::OnBnClickedSetExpore)
|
|
|
ON_BN_CLICKED(IDC_ZOOM_FULL, &DlgHawkvisCamera::OnBnClickedZoomFull)
|
|
|
ON_BN_CLICKED(IDC_HK_ZOOM_IN, &DlgHawkvisCamera::OnBnClickedHkZoomIn)
|
|
|
ON_BN_CLICKED(IDC_HK_ZOOM_OUT, &DlgHawkvisCamera::OnBnClickedHkZoomOut)
|
|
|
ON_BN_CLICKED(IDC_CLOSE_CAM, &DlgHawkvisCamera::OnBnClickedCloseCam)
|
|
|
ON_BN_CLICKED(IDC_TEST_CATCH_TEMP, &DlgHawkvisCamera::OnBnClickedTestCatchTemp)
|
|
|
ON_BN_CLICKED(IDC_LOAD_CATCH_TEMP, &DlgHawkvisCamera::OnBnClickedLoadCatchTemp)
|
|
|
ON_BN_CLICKED(IDC_SAVE_CATCH_TEMP, &DlgHawkvisCamera::OnBnClickedSaveCatchTemp)
|
|
|
ON_BN_CLICKED(IDC_RADIO3, &DlgHawkvisCamera::OnBnClickedToCam1)
|
|
|
ON_BN_CLICKED(IDC_RADIO1, &DlgHawkvisCamera::OnBnClickedToCam2)
|
|
|
ON_BN_CLICKED(IDC_TEST_CATCH_TEMP2, &DlgHawkvisCamera::OnBnClickedTestDefinition)
|
|
|
ON_MESSAGE(WM_UPDATE_FALSE, OnUpdateFalse)
|
|
|
//ON_MESSAGE_VOID(WM_UPDATE_FALSE, OnUpdateFalse)
|
|
|
ON_BN_CLICKED(IDC_TEST_CATCH_TEMP3, &DlgHawkvisCamera::OnBnClickedSetThreshold)
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
#define WORK_TIMER1 1
|
|
|
#define WORK_TIME_DELAY1 200
|
|
|
|
|
|
DlgHawkvisCamera::DlgHawkvisCamera(CWnd* pParent /*=NULL*/)
|
|
|
: m_CurPic_Definition(0)
|
|
|
, m_CurTrackThreshold(0)
|
|
|
{
|
|
|
m_nExpore = (60000);
|
|
|
}
|
|
|
DlgHawkvisCamera::~DlgHawkvisCamera()
|
|
|
{
|
|
|
}
|
|
|
void DlgHawkvisCamera::DoDataExchange(CDataExchange* pDX)
|
|
|
{
|
|
|
CDialogEx::DoDataExchange(pDX);
|
|
|
DDX_Control(pDX, IDC_ISP3000_LOGO_BTN, m_ISP3000LogoBtn);
|
|
|
DDX_Control(pDX, IDC_HAWKVISCTRLCTRL3, m_HawkvisCtrl);
|
|
|
|
|
|
DDX_Control(pDX, IDC_OPEN_CAM, m_OpenCamBtn);
|
|
|
DDX_Control(pDX, IDC_CLOSE_CAM, m_CloseCamBtn);
|
|
|
DDX_Control(pDX, IDC_FRAME_ONE, m_OneFrameBtn);
|
|
|
DDX_Control(pDX, IDC_FRAME_CONTINUE, m_ContinueFrameBtn);
|
|
|
DDX_Control(pDX, IDC_READ_BMP, m_ReadBmpBtn);
|
|
|
DDX_Control(pDX, IDC_SAVE_BMP, m_SaveBmpBtn);
|
|
|
DDX_Control(pDX, IDC_SET_EXPORE, m_SetExpBtn);
|
|
|
DDX_Control(pDX, IDC_HK_ZOOM_IN, m_ZoomInBtn);
|
|
|
DDX_Control(pDX, IDC_HK_ZOOM_OUT, m_ZoomOutBtn);
|
|
|
DDX_Control(pDX, IDC_ZOOM_FULL, m_ZoomFullBtn);
|
|
|
DDX_Control(pDX, IDC_LOAD_CATCH_TEMP, m_ReadTempBtn);
|
|
|
DDX_Control(pDX, IDC_CREAT_CATCH_TEMP, m_EditTempBtn);
|
|
|
DDX_Control(pDX, IDC_TEST_CATCH_TEMP, m_TestTempBtn);
|
|
|
DDX_Control(pDX, IDC_SAVE_CATCH_TEMP, m_SaveTempBtn);
|
|
|
DDX_Text(pDX, IDC_EDIT_SET_EXP, m_nExpore);
|
|
|
DDX_Control(pDX, IDC_TEST_CATCH_TEMP2, m_TestDefinitionBtn);
|
|
|
DDX_Control(pDX, IDC_TEST_CATCH_TEMP3, m_SetThresholdBtn);
|
|
|
|
|
|
DDX_Text(pDX, IDC_EDIT_SET_EXP2, m_CurTrackThreshold);
|
|
|
DDX_Text(pDX, IDC_STATIC_CurValue, m_CurPic_Definition);
|
|
|
|
|
|
}
|
|
|
BOOL DlgHawkvisCamera::OnInitDialog()
|
|
|
{
|
|
|
gDlgHawkvisCamera = this;
|
|
|
CDialogEx::OnInitDialog();
|
|
|
m_ISP3000LogoBtn.SetUpColor(RGB_YELLOW);
|
|
|
|
|
|
m_OpenCamBtn.SetUpColor(RGB_GREEN);
|
|
|
m_CloseCamBtn.SetUpColor(RGB_GREEN);
|
|
|
|
|
|
m_ReadTempBtn.SetUpColor(RGB_GREEN1);
|
|
|
m_EditTempBtn.SetUpColor(RGB_GREEN1);
|
|
|
m_TestTempBtn.SetUpColor(RGB_GREEN1);
|
|
|
m_SaveTempBtn.SetUpColor(RGB_GREEN1);
|
|
|
|
|
|
m_OneFrameBtn.SetUpColor(RGB_PINK);
|
|
|
m_ContinueFrameBtn.SetUpColor(RGB_PINK);
|
|
|
|
|
|
|
|
|
Fresh();
|
|
|
|
|
|
((CButton*)GetDlgItem(IDC_CROSS_CHECK))->SetCheck(TRUE);
|
|
|
UpdateData(FALSE);
|
|
|
return TRUE;
|
|
|
}
|
|
|
//<2F>۲<EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD>ı仯
|
|
|
void DlgHawkvisCamera::UpdateInfo()
|
|
|
{
|
|
|
//<2F><><EFBFBD>ļ<EFBFBD>ʱ,<2C>Զ<EFBFBD><D4B6><EFBFBD>ģ<EFBFBD><C4A3>
|
|
|
if (gCameraHawkvis->GetCurShapeModelID()!= m_ShapeModelID)
|
|
|
{
|
|
|
m_ShapeModelID = gCameraHawkvis->GetCurShapeModelID();
|
|
|
OnBnClickedLoadCatchTemp();
|
|
|
}
|
|
|
|
|
|
if (m_DlgCurCamIndex == gCameraHawkvis->GetCamIndex())
|
|
|
return;
|
|
|
|
|
|
if (gCameraHawkvis->GetCamIndex() == 0)
|
|
|
OnBnClickedToCam1();
|
|
|
|
|
|
if (gCameraHawkvis->GetCamIndex() == 1)
|
|
|
OnBnClickedToCam2();
|
|
|
|
|
|
UpdateData(FALSE);
|
|
|
}
|
|
|
void DlgHawkvisCamera::Fresh()
|
|
|
{
|
|
|
SetTimer(WORK_TIMER1, WORK_TIME_DELAY1, NULL);//<2F><>timer<65><72><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᱨ<EFBFBD><E1B1A8>
|
|
|
}
|
|
|
void DlgHawkvisCamera::OnTimer(UINT nIDEvent)
|
|
|
{
|
|
|
if (nIDEvent == WORK_TIMER1)
|
|
|
{
|
|
|
UpdateInfo();
|
|
|
//KillTimer(WORK_TIMER1);
|
|
|
}
|
|
|
CDialog::OnTimer(nIDEvent);
|
|
|
}
|
|
|
|
|
|
#if 1
|
|
|
void DlgHawkvisCamera::OnBnClickedOpenCam()
|
|
|
{
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
if (m_HawkvisCtrl.MV_OpenCamera())
|
|
|
#else
|
|
|
if (m_HawkvisCtrl.HV_OpenCamera())
|
|
|
#endif
|
|
|
{
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->OK");
|
|
|
}
|
|
|
else
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->ERR");
|
|
|
}
|
|
|
void DlgHawkvisCamera::OnBnClickedCloseCam()
|
|
|
{
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
m_HawkvisCtrl.MV_CloseCamera();
|
|
|
#else
|
|
|
m_HawkvisCtrl.HV_CloseCamera();
|
|
|
#endif
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : Close Cam");
|
|
|
}
|
|
|
void DlgHawkvisCamera::OnBnClickedFrameOne()
|
|
|
{
|
|
|
m_HawkvisCtrl.SetCrossShow(1, 30, 30, -1, -1, FALSE);
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
if (m_HawkvisCtrl.MV_GetOneFrame())
|
|
|
#else
|
|
|
if (m_HawkvisCtrl.HV_GetOneFrame())
|
|
|
#endif
|
|
|
{
|
|
|
//m_HawkvisCtrl.Rotate180();
|
|
|
m_HawkvisCtrl.ZoomFitWindow();
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --OK");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --ERR");
|
|
|
}
|
|
|
}
|
|
|
void DlgHawkvisCamera::OnBnClickedFrameContinue()
|
|
|
{
|
|
|
m_HawkvisCtrl.SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck());
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
if (m_HawkvisCtrl.MV_GetContinueFrame())
|
|
|
#else
|
|
|
if (m_HawkvisCtrl.HV_GetContinueFrame())
|
|
|
#endif
|
|
|
{
|
|
|
m_HawkvisCtrl.ZoomFitWindow();
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameContinue --OK");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameContinue --ERR");
|
|
|
}
|
|
|
}
|
|
|
void DlgHawkvisCamera::OnBnClickedReadBmp()
|
|
|
{
|
|
|
m_HawkvisCtrl.ReadImage();
|
|
|
}
|
|
|
void DlgHawkvisCamera::OnBnClickedSaveBmp()
|
|
|
{
|
|
|
CFileMgr FileMgr;
|
|
|
CString path = FileMgr.GetWorkPath();
|
|
|
m_HawkvisCtrl.WriteImage((LPCTSTR)path, "OutputImg");
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : SaveBmp");
|
|
|
}
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ֵ
|
|
|
void DlgHawkvisCamera::OnBnClickedSetExpore()
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
if (m_DlgCurCamIndex == 0)
|
|
|
{
|
|
|
//gCameraHawkvis->m_nCam1Expore = m_nExpore;
|
|
|
gDevicePropertieMgr.ChangePropertieByVal(&gCameraHawkvis->m_nCam1Expore, m_nExpore);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//gCameraHawkvis->m_nCam2Expore = m_nExpore;
|
|
|
gDevicePropertieMgr.ChangePropertieByVal(&gCameraHawkvis->m_nCam2Expore, m_nExpore);
|
|
|
}
|
|
|
m_HawkvisCtrl.MV_SetCameraExpTime(m_nExpore);
|
|
|
#else
|
|
|
m_HawkvisCtrl.HV_SetCameraExpTime(m_nExpore);
|
|
|
#endif
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : SetExpore");
|
|
|
OnBnClickedFrameOne();
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedZoomFull()
|
|
|
{
|
|
|
m_HawkvisCtrl.ZoomFitWindow();
|
|
|
}
|
|
|
void DlgHawkvisCamera::OnBnClickedHkZoomIn()
|
|
|
{
|
|
|
m_HawkvisCtrl.ZoomIn();
|
|
|
}
|
|
|
void DlgHawkvisCamera::OnBnClickedHkZoomOut()
|
|
|
{
|
|
|
m_HawkvisCtrl.ZoomOut();
|
|
|
}
|
|
|
#if 1
|
|
|
//<2F>༭ģ<E0BCAD><C4A3>
|
|
|
void DlgHawkvisCamera::OnBnClickedCreatCatchTemp()
|
|
|
{
|
|
|
//<2F><><EFBFBD>ÿؼ<C3BF><D8BC>ӿڣ<D3BF><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״<EFBFBD><D7B4>ģ<EFBFBD>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊģ<CEAA><C4A3>ID<49>š<EFBFBD><C5A1>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>100<30><30>ģ<EFBFBD>壬<EFBFBD><E5A3AC>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>Ϊ0<CEAA><30>99
|
|
|
//m_HawkvisCtrl.CreateShapeModel(0);
|
|
|
m_HawkvisCtrl.CreateShapeModel(gCameraHawkvis->GetCurShapeModelID());
|
|
|
}
|
|
|
void DlgHawkvisCamera::OnBnClickedTestCatchTemp()
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
//<2F><><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD>Ƶ<EFBFBD>Բ
|
|
|
m_HawkvisCtrl.ClearGraphicObject();
|
|
|
//ץȡһ֡
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
if (!m_HawkvisCtrl.MV_GetOneFrame())
|
|
|
#else
|
|
|
if (!m_HawkvisCtrl->HV_GetOneFrame())
|
|
|
#endif
|
|
|
{
|
|
|
CString str = _T("func : Hawkvis Get One Frame----->Error");
|
|
|
gLogMgr->WriteDebugLog(str);
|
|
|
}
|
|
|
Sleep(300);//<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ocx <20>ؼ<EFBFBD><D8BC><EFBFBD>
|
|
|
//ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
double pdbX[10], pdbY[10], pdbAngles[10], pdbScale[10], pdbSore[10];
|
|
|
long nCount[1] = { 1 };
|
|
|
//FindShapeMode <20>ؼ<EFBFBD><D8BC><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD><EFBFBD>
|
|
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡֵ<C8A1><D6B5>Χ1<CEA7><31>5
|
|
|
//<2F>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
//<2F><><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>Ƕ<EFBFBD>
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
//<2F><><EFBFBD>߸<EFBFBD><DFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
//<2F>ڰ˸<DAB0><CBB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ID<49><44>
|
|
|
VARIANT *v_pdbX = new VARIANT[1];
|
|
|
VARIANT *v_pdbY = new VARIANT[1];
|
|
|
VARIANT *v_pdbAngles = new VARIANT[1];
|
|
|
VARIANT *v_pdbScale = new VARIANT[1];
|
|
|
VARIANT *v_pdbSore = new VARIANT[1];
|
|
|
|
|
|
bool ret = m_HawkvisCtrl.FindShapeModel(gCameraHawkvis->GetCurShapeModelID(), v_pdbY, v_pdbX, v_pdbAngles, v_pdbScale, v_pdbSore, nCount);
|
|
|
if (!ret)//2018-01-15 <20><><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻᱨ<DCBB><E1B1A8>
|
|
|
{
|
|
|
CString str = _T("func : Hawkvis Find Shape Model----->Error");
|
|
|
//CExceptionMsg Msg;
|
|
|
//Msg.SetMsg(str);
|
|
|
//throw Msg;
|
|
|
gLogMgr->WriteDebugLog(str);
|
|
|
return;
|
|
|
}
|
|
|
//pdbX
|
|
|
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbX->parray); ++index) {
|
|
|
::SafeArrayGetElement(v_pdbX->parray, &index, pdbX + index);
|
|
|
}
|
|
|
//pdbY
|
|
|
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbY->parray); ++index) {
|
|
|
::SafeArrayGetElement(v_pdbY->parray, &index, pdbY + index);
|
|
|
}
|
|
|
//pdbAngles
|
|
|
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbAngles->parray); ++index) {
|
|
|
::SafeArrayGetElement(v_pdbAngles->parray, &index, pdbAngles + index);
|
|
|
}
|
|
|
//pdbScale
|
|
|
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbScale->parray); ++index) {
|
|
|
::SafeArrayGetElement(v_pdbScale->parray, &index, pdbScale + index);
|
|
|
}
|
|
|
//pdbSore
|
|
|
for (long index = 0; index < ::SafeArrayGetElemsize(v_pdbSore->parray); ++index) {
|
|
|
::SafeArrayGetElement(v_pdbSore->parray, &index, pdbSore + index);
|
|
|
}
|
|
|
|
|
|
//<2F><>ʾ<EFBFBD><CABE><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
#if 1
|
|
|
Dbxy pt;
|
|
|
CString str;
|
|
|
str.Format("X: %0.3f, Y:%0.f", pdbX[0], pdbY[0]);
|
|
|
pt.x = pdbX[0];
|
|
|
pt.y = pdbY[0];
|
|
|
str.Format("X: %0.3f, Y:%0.3f", pt.x, pt.y);
|
|
|
gLogMgr->WriteDebugLog(str);
|
|
|
#endif
|
|
|
//gCommonFlowMgr->CameraCatch();
|
|
|
}
|
|
|
catch (...)
|
|
|
{
|
|
|
AfxMessageBox("ģ<EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD> <20>쳣!");
|
|
|
}
|
|
|
}
|
|
|
void DlgHawkvisCamera::OnBnClickedLoadCatchTemp()
|
|
|
{
|
|
|
CFileMgr FileMgr;
|
|
|
CString path = FileMgr.GetWorkPath();
|
|
|
// auto b=m_HawkvisCtrl.LoadShapeModel((LPCTSTR)path);
|
|
|
auto b = m_HawkvisCtrl.LoadShapeModelByID(gCameraHawkvis->GetCurShapeModelID(), (LPCTSTR)path);
|
|
|
CString str;
|
|
|
str.Format("Hawkvis : LoadatchTemp [%d]", gCameraHawkvis->GetCurShapeModelID());
|
|
|
|
|
|
if (b)
|
|
|
str += " <20>ɹ<EFBFBD>!";
|
|
|
else
|
|
|
str += " ʧ<><CAA7>!";
|
|
|
|
|
|
|
|
|
gLogMgr->WriteDebugLog(str);
|
|
|
//gLogMgr->WriteDebugLog("Hawkvis : LoadCatchTemp");
|
|
|
}
|
|
|
void DlgHawkvisCamera::OnBnClickedSaveCatchTemp()
|
|
|
{
|
|
|
//SaveShapeMode <20><><EFBFBD><EFBFBD>ģ<EFBFBD>庯<EFBFBD><E5BAAF>
|
|
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>屣<EFBFBD><E5B1A3><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|
|
//<2F>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>屣<EFBFBD><E5B1A3><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
CFileMgr FileMgr;
|
|
|
CString path = FileMgr.GetWorkPath();
|
|
|
//auto b= m_HawkvisCtrl.SaveShapeModel((LPCTSTR)path);
|
|
|
auto b = m_HawkvisCtrl.SaveShapeModelByID(gCameraHawkvis->GetCurShapeModelID(), (LPCTSTR)path);
|
|
|
CString str;
|
|
|
str.Format("Hawkvis : SaveCatchTemp [%d]", gCameraHawkvis->GetCurShapeModelID());
|
|
|
if (b)
|
|
|
str += " <20>ɹ<EFBFBD>!";
|
|
|
else
|
|
|
str += " ʧ<><CAA7>!";
|
|
|
gLogMgr->WriteDebugLog(str);
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedToCam1()
|
|
|
{
|
|
|
//<2F><>ǰˢ<C7B0><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
|
|
|
m_DlgCurCamIndex = 0;
|
|
|
gCameraHawkvis->SetCamIndex(0);
|
|
|
|
|
|
try
|
|
|
{
|
|
|
m_HawkvisCtrl.MV_CloseCamera();
|
|
|
if (m_HawkvisCtrl.MV_SelectAdapterByIdx(0))
|
|
|
{
|
|
|
if (m_HawkvisCtrl.MV_OpenCamera())
|
|
|
{
|
|
|
OnBnClickedLoadCatchTemp();//<2F><>ȡģ<C8A1><C4A3>
|
|
|
m_HawkvisCtrl.MV_SetCameraExpTime(gCameraHawkvis->m_nCam1Expore);
|
|
|
m_nExpore = gCameraHawkvis->m_nCam1Expore;
|
|
|
}
|
|
|
m_HawkvisCtrl.SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck());
|
|
|
if (m_HawkvisCtrl.MV_GetOneFrame())
|
|
|
{
|
|
|
m_HawkvisCtrl.ZoomFitWindow();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
static bool bfirst = true;
|
|
|
if (bfirst)
|
|
|
{
|
|
|
bfirst = false;
|
|
|
AfxMessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1ʧ<EFBFBD><EFBFBD>!");//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
catch (...)
|
|
|
{
|
|
|
AfxMessageBox("<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣!");
|
|
|
}
|
|
|
|
|
|
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(TRUE);
|
|
|
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);
|
|
|
gLogMgr->WriteDebugLog("Switch To Cam1");
|
|
|
}
|
|
|
|
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedToCam2()
|
|
|
{ //<2F><>ǰˢ<C7B0><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
|
|
|
m_DlgCurCamIndex = 1;
|
|
|
gCameraHawkvis->SetCamIndex(1);
|
|
|
|
|
|
try
|
|
|
{
|
|
|
m_HawkvisCtrl.MV_CloseCamera();
|
|
|
if (m_HawkvisCtrl.MV_SelectAdapterByIdx(1))
|
|
|
{
|
|
|
if (m_HawkvisCtrl.MV_OpenCamera())
|
|
|
{
|
|
|
OnBnClickedLoadCatchTemp();//<2F><>ȡģ<C8A1><C4A3>
|
|
|
m_HawkvisCtrl.MV_SetCameraExpTime(gCameraHawkvis->m_nCam2Expore);
|
|
|
m_nExpore = gCameraHawkvis->m_nCam2Expore;
|
|
|
//UpdateData(FALSE);
|
|
|
//OnBnClickedSetExpore();//<2F><><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>
|
|
|
}
|
|
|
m_HawkvisCtrl.SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck());
|
|
|
if (m_HawkvisCtrl.MV_GetOneFrame())
|
|
|
{
|
|
|
m_HawkvisCtrl.ZoomFitWindow();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
static bool bfirst = true;
|
|
|
if (bfirst)
|
|
|
{
|
|
|
AfxMessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2ʧ<EFBFBD><EFBFBD>!");//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|
|
bfirst = false;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
catch (...)
|
|
|
{
|
|
|
AfxMessageBox("<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣!");
|
|
|
}
|
|
|
|
|
|
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);
|
|
|
((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(FALSE);
|
|
|
gLogMgr->WriteDebugLog("Switch To Cam2");
|
|
|
}
|
|
|
|
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedTestDefinition()
|
|
|
{
|
|
|
#ifdef __HAWKVIS_MINDVISION_CCD__
|
|
|
if (m_HawkvisCtrl.MV_GetOneFrame())
|
|
|
#else
|
|
|
if (m_HawkvisCtrl.HV_GetOneFrame())
|
|
|
#endif
|
|
|
{
|
|
|
m_HawkvisCtrl.ZoomFitWindow();
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --OK");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
gLogMgr->WriteDebugLog("Hawkvis : FrameOne --ERR");
|
|
|
m_CurPic_Definition = 0;
|
|
|
PostMessage(WM_UPDATE_FALSE);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
CFileMgr fg;
|
|
|
CString path = fg.GetWorkPath();
|
|
|
m_HawkvisCtrl.WriteImage((LPCTSTR)path, "PicForDefinition");
|
|
|
Sleep(50);
|
|
|
path += "\\PicForDefinition.bmp";
|
|
|
Mat imageSource = imread((LPCTSTR)path);
|
|
|
|
|
|
/*Mat imageGray;
|
|
|
cvtColor(imageSource, imageGray, CV_RGB2GRAY);*/
|
|
|
Mat imageSobel;
|
|
|
//Laplacian(imageSource, imageSobel, CV_16U);
|
|
|
Sobel(imageSource, imageSobel, CV_16U, 1, 1);
|
|
|
m_CurPic_Definition = mean(imageSobel)[0];
|
|
|
PostMessage(WM_UPDATE_FALSE);
|
|
|
}
|
|
|
|
|
|
bool DlgHawkvisCamera::bCurPicDefinitionOK()
|
|
|
{
|
|
|
m_CurTrackThreshold = 0;
|
|
|
auto FileName = gProgramCutMgr->GetCurOpenFileName();
|
|
|
if (FileName.IsEmpty())
|
|
|
return true;
|
|
|
CString nameTail;
|
|
|
nameTail.Format("_T%d.def", m_DlgCurCamIndex);
|
|
|
CSmartArchive ar(FileName + nameTail, false);
|
|
|
ar + m_CurTrackThreshold;
|
|
|
|
|
|
OnBnClickedTestDefinition();
|
|
|
|
|
|
if (m_CurTrackThreshold > 0.1)
|
|
|
{
|
|
|
if (m_CurPic_Definition < m_CurTrackThreshold)
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
|
|
|
void DlgHawkvisCamera::OnBnClickedSetThreshold()
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
|
|
|
auto FileName = gProgramCutMgr->GetCurOpenFileName();
|
|
|
if (FileName.IsEmpty())
|
|
|
return;
|
|
|
CString nameTail;
|
|
|
nameTail.Format("_T%d.def", m_DlgCurCamIndex);
|
|
|
CSmartArchive ar(FileName + nameTail, true);
|
|
|
ar + m_CurTrackThreshold;
|
|
|
}
|