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/DlgDnCutCamera.cpp

544 lines
14 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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><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><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;
}