#pragma once #include "CManageDB.h" #include "CAxis.h" #include "CCameraBase.h" //#include "CXYCalib.h" //#include "ILocalizationManager.h" #include "CPxielLocation.h" #ifdef C_PR_TEMPLATE_EXPORTS #define C_PR_TEMPLATE_DLL_API __declspec(dllexport) #else #define C_PR_TEMPLATE_DLL_API //__declspec(dllimport) #endif using namespace ns_db; using namespace JVision; class CXYCalib; namespace ns_pr { //�˴������ƫ��Ϊ��������ʮ�ֹ�����ĵ��������꣨�ף� struct FIND_SINGLE_TEMP_STRUCT { PR_OUTPUT_TYPE type; //�������� double score; //���� double x; //x����ƫ��ף� double y; //y����ƫ��ף� union { double angle; //�Ƕ�ƫ��ȣ� double radius; //�뾶 }; }; // ���У�ṹ�壬���ڴ洢���ָ��Ͷ�Ӧ������Уָ�� struct CAMERA_CALIB_STRUCT { CCameraBase* pCamera; // ָ����������ָ�� CXYCalib* pXYCalib; // ָ������У�����ָ�� }; // CSingleTemplate �࣬���ڴ�����ģ����صIJ��� class C_PR_TEMPLATE_DLL_API CSingleTemplate { private: bool m_bIsInitSuccess; // ��dz�ʼ���Ƿ�ɹ� CProduct* m_pCProduct = nullptr; // ָ���Ʒ��ض����ָ�룬�������������ݿ⽻����ȡ��Ʒ��Ϣ //ILocalizationManager* m_pLocalizationManager = nullptr; // ���ػ���������ָ�룬��ʱע�͵��������ں���������չ��ʹ�� CPixelLocation* m_pPixelLocation = nullptr; // ����λ�ô�������ָ�룬���ڴ���ͼ��������λ����ز��� vector<CAMERA_CALIB_STRUCT> m_VecCamera; // �洢���У�ṹ������� // ��ֹĬ�Ϲ��캯����ȷ������ֻ��ͨ���ض���ʽ��ʼ�� //CSingleTemplate() = delete; // ������ID�Ƿ��ڴ洢������б��� // ���� nCameraId��Ҫ�������ID bool CheckCameraId(UINT nCameraId); // ͨ�����ID��ȡ�������ָ�� // ���� nCameraID��Ŀ�������ID // ����ֵ��ָ����������ָ�룬���δ�ҵ��� nullptr CCameraBase* GetCameraPoint(UINT nCameraID); // ͨ�����ID��ȡ�����XY�궨����ָ�� // ���� nCameraID��Ŀ�������ID // ����ֵ��ָ�����XY�궨�����ָ�룬���δ�ҵ��� nullptr CXYCalib* GetXYCalibPoint(UINT nCameraID); // ͨ��ģ��ID��ȡģ����Ϣ // ���� iTemplateId��Ҫ��ȡ��ģ��ID // ���� stTemplate�����ڴ洢��ȡ����ģ����Ϣ�Ľṹ������ // ����ֵ���������������ɹ����� OK��ʧ�ܷ��� FAIL �� LONG GetTemplateById(UINT iTemplateId, PR_TEMPLATE& stTemplate); // ����ͼƬ��outPointΪ�����ͼƬ���Ͻǵĵ㣬��ʱע�͵��������ں�������������ʹ�� // ���� iPrMethod������ʹ�õķ���ID // ���� image��Ҫ������ͼ����Ϣ // ���� outPoint�����ڴ洢��������������ͼƬ���Ͻǵĵ�Ľṹ������ // ����ֵ���������������ɹ����� OK��ʧ�ܷ��� FAIL �� //LONG SearchImageByLocalization(UINT iPrMethod, ImageInfo image,FIND_OUTPUT_STRUCT& outPoint); public: // ���캯����ʹ�ô�������У�ṹ���������г�ʼ�� // ���� vecCamer���������������У��Ϣ�Ľṹ������ CSingleTemplate(vector<CAMERA_CALIB_STRUCT> vecCamer); // ��ȡ��ʼ���Ƿ�ɹ���״̬ // ����ֵ����ʼ���ɹ����� true��ʧ�ܷ��� false bool IsInitSuccess() { return m_bIsInitSuccess; }; // ���ݸ�����ģ����Ϣ�������ӳ�ʱ�䣬������ģ�壬���������ʮ�ֹ�����ĵ�X��Y����ֵ���Լ��Ƕȣ��ȣ�ƫ�� // ���� stTemplate������ģ�������Ϣ�Ľṹ�壬�����ID�������� // ���� nDelayTakePicture������ǰ���ӳ�ʱ�䣨��λΪ���룩 // ���� stOutOffset�����ڴ洢�������ƫ����Ϣ�Ľṹ�����ã�����X��Y�ͽǶ�ƫ�� // ����ֵ���������������ɹ����� OK��ʧ�ܷ��� FAIL �� LONG SearchTemplate(PR_TEMPLATE stTemplate, UINT nDelayTakePicture, FIND_SINGLE_TEMP_STRUCT& stOutOffset); // ���ݸ�����ģ��ID�������ӳ�ʱ�䣬������ģ�壬���������ʮ�ֹ�����ĵ�X��Y����ֵ���Լ��Ƕȣ��ȣ�ƫ�� // ���� iTemplateId��Ҫ������ģ��ID // ���� nDelayTakePicture������ǰ���ӳ�ʱ�䣨��λ���룩 // ���� stOutOffset�����ڴ洢�������ƫ����Ϣ�Ľṹ�����ã�����X��Y�ͽǶ�ƫ�� // ����ֵ���������������ɹ����� OK��ʧ�ܷ��� FAIL �� LONG SearchTemplate(UINT iTemplateId, UINT nDelayTakePicture, FIND_SINGLE_TEMP_STRUCT& stOutOffset); // ����ģ�壬����ģ�����͡����ID��ʶ����ץȡλ�õȲ�������ѡ���ѡ����� // ���� iModuleType��ģ��������ģ������ // ���� iCameraId��ʹ�õ����ID // ���� iPrMethod��ģ��ʶ��ID // ���� stGrabPos������ץȡλ����Ϣ�Ľṹ�壬���ܰ���X��Y��Z�������ת�Ƕȵ� // ���� eResultSelect�����ѡ��ö��ֵ��Ĭ��ֵΪ SEARCH_OUT::OUT_All������ָ��������������� // ����ֵ���������������ɹ����� OK��ʧ�ܷ��� FAIL �� LONG CreateTemplate(UINT iCameraId, UINT iPrMethod, X_Y_Z_R_STRUCT stGrabPos, SEARCH_OUT eResultSelect,UINT &iTemplateId); }; }