ClassFlowCNNGeneral.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #ifndef __CLASSCNNGENERAL__
  2. #define __CLASSCNNGENERAL__
  3. #include"ClassFlowDefineTypes.h"
  4. #include "ClassFlowAlignment.h"
  5. enum t_CNNType {
  6. AutoDetect,
  7. Analogue,
  8. Analogue100,
  9. Digital,
  10. DigitalHyprid10,
  11. DoubleHyprid10,
  12. Digital100,
  13. None
  14. };
  15. class ClassFlowCNNGeneral :
  16. public ClassFlowImage
  17. {
  18. protected:
  19. t_CNNType CNNType;
  20. std::vector<general*> GENERAL;
  21. float CNNGoodThreshold;
  22. float AnalogFehler = 3.0;
  23. float AnalogToDigtalFehler = 0.8;
  24. float DigitalUnschaerfe = 0.2;
  25. int DigitalBand = 3;
  26. float DigitalAnalogerVorgaengerUebergangsbereich = 2;
  27. float DigitalUebergangsbereichVorgaenger = 0.7; // 9.3 - 0.7
  28. float DigitalUebergangsbereichVorlauf = 9.7; // Vorlauf-Nulldurchgang passiert erst ab ca. 9.7
  29. string cnnmodelfile;
  30. int modelxsize, modelysize, modelchannel;
  31. bool isLogImageSelect;
  32. string LogImageSelect;
  33. ClassFlowAlignment* flowpostalignment;
  34. bool SaveAllFiles;
  35. int ZeigerEvalAnalogNeu(float zahl, int ziffer_vorgaenger);
  36. int ZeigerEvalAnalogToDigitNeu(float zahl, float ziffer_vorgaenger, int eval_vorgaenger, float analogDigitalTransitionStart);
  37. int ZeigerEvalHybridNeu(float zahl, float zahl_vorgaenger, int eval_vorgaenger, bool AnalogerVorgaenger = false, float analogDigitalTransitionStart=9.2);
  38. bool doNeuralNetwork(string time);
  39. bool doAlignAndCut(string time);
  40. bool getNetworkParameter();
  41. public:
  42. ClassFlowCNNGeneral(ClassFlowAlignment *_flowalign, t_CNNType _cnntype = AutoDetect);
  43. bool ReadParameter(FILE* pfile, string& aktparamgraph);
  44. bool doFlow(string time);
  45. string getHTMLSingleStep(string host);
  46. string getReadout(int _analog, bool _extendedResolution = false, int prev = -1, float _vorgaengerAnalog = -1, float analogDigitalTransitionStart=9.2);
  47. string getReadoutRawString(int _analog);
  48. void DrawROI(CImageBasis *_zw);
  49. std::vector<HTMLInfo*> GetHTMLInfo();
  50. int getAnzahlGENERAL();
  51. general* GetGENERAL(int _analog);
  52. general* GetGENERAL(string _name, bool _create);
  53. general* FindGENERAL(string _name_number);
  54. string getNameGENERAL(int _analog);
  55. bool isExtendedResolution(int _number = 0);
  56. void UpdateNameNumbers(std::vector<std::string> *_name_numbers);
  57. t_CNNType getCNNType(){return CNNType;};
  58. string name(){return "ClassFlowCNNGeneral";};
  59. };
  60. #endif