123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #include "stdafx.h"
- #include "SpectrumCompareEngine.h"
- #include "SpectrumCompareEngine/OTSSpectrumLibFileMgr.h"
- #include "SpectrumCompareEngine/OTSClassifyOnSpectrumCompEng.h"
- namespace OTSClassifyEngine
- {
- bool SpectrumCompareEngine::Init()
- {
-
-
- CSpectrumLibFileMgrPtr pLibFileMgr = CSpectrumLibFileMgrPtr(new CSpectrumLibFileMgr(m_StrName));
- myLib = CSTDLibPtr(new CSTDLib(m_StrName));
- myLib->Init();
- myLib->LoadSpectrumSTDFromDB(m_StrName);
-
- m_Engine = new CClassifyOnSpectrumCompEng(0,myLib);
- return TRUE;
- }
- bool SpectrumCompareEngine::ClassifyBySpectrum(COTSParticlePtr particle, CPosXrayPtr xray)
- {
- // similarity
- double dSim = 0;
- // classify Particles
-
- auto stditm = m_Engine->GetMatchingSTD( xray, dSim);
- if (dSim > 0.7)
- {
- if (stditm != nullptr)
- {
- particle->SetType(OTS_PARTICLE_TYPE::IDENTIFIED);
- particle->SetClassifyId(stditm->GetID());
- particle->SetClassifyName(stditm->GetName().GetBuffer());
- particle->SetColor(std::to_string(stditm->GetColor()));
- }
- else
- {
- particle->SetType(OTS_PARTICLE_TYPE::NOT_IDENTIFIED);
- particle->SetClassifyName("Not Identified");
- }
- }
- else
- {
- particle->SetType(OTS_PARTICLE_TYPE::NOT_IDENTIFIED);
- particle->SetClassifyName("Not Identified");
- }
-
-
- return true;
- }
- bool SpectrumCompareEngine::IfNeedMaxEDS(COTSParticlePtr particle, CPosXrayPtr xray, double& MaxEDSTime)
- {
- throw std::logic_error("The method or operation is not implemented.");
- }
- bool SpectrumCompareEngine::ClassifyExpression(COTSParticlePtr particle, CPosXrayPtr xray)
- {
- return false;
- }
- bool SpectrumCompareEngine::ClassifyByExpressionTemporarySpectrum(COTSParticlePtr particle, CPosXrayPtr xray)
- {
- return false;
- }
- bool SpectrumCompareEngine::ClassifyIncA(COTSParticlePtr particle, int SteelTech, CPosXrayPtr xray)
- {
- return false;
- }
- bool SpectrumCompareEngine::ZeroElementProcess(COTSParticlePtr particle)
- {
- return false;
- }
- OTSClassifyEngine::CLEEnginePtr GetCurveCompareEngine(std::string libName)
- {
- static CLEEnginePtr engine;
- if (engine == NULL)
- {
- engine = CLEEnginePtr(new SpectrumCompareEngine(libName));
- if (!engine->Init())
- {
- return NULL;
- }
- }
- return engine;
- }
- }
|