ClassFlowCNNGeneral.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. // DigitalHyprid,
  11. DigitalHyprid10,
  12. DoubleHyprid10,
  13. Digital100,
  14. None
  15. };
  16. class ClassFlowCNNGeneral :
  17. public ClassFlowImage
  18. {
  19. protected:
  20. t_CNNType CNNType;
  21. std::vector<general*> GENERAL;
  22. float CNNGoodThreshold;
  23. float AnalogFehler = 3.0;
  24. float AnalogToDigtalFehler = 0.8;
  25. float DigitalUnschaerfe = 0.2;
  26. int DigitalBand = 3;
  27. float DigitalAnalogerVorgaengerUebergangsbereich = 2;
  28. float DigitalUebergangsbereichVorgaengerAnalogToDigit = 1; // war vorher 2
  29. float DigitalUebergangsbereichVorgaenger = 0.9;
  30. string cnnmodelfile;
  31. int modelxsize, modelysize, modelchannel;
  32. bool isLogImageSelect;
  33. string LogImageSelect;
  34. ClassFlowAlignment* flowpostalignment;
  35. // ClassFlowPostProcessing *flowpostprocessing = NULL;
  36. bool SaveAllFiles;
  37. // bool extendedResolution;
  38. // int ZeigerEval(float zahl, int ziffer_vorgaenger);
  39. // int ZeigerEvalHybrid(float zahl, float zahl_vorgaenger, int eval_vorgaenger);
  40. int ZeigerEvalAnalogNeu(float zahl, int ziffer_vorgaenger);
  41. int ZeigerEvalAnalogToDigitNeu(float zahl, float ziffer_vorgaenger, int eval_vorgaenger);
  42. int ZeigerEvalHybridNeu(float zahl, float zahl_vorgaenger, int eval_vorgaenger, bool AnalogerVorgaenger = false);
  43. bool doNeuralNetwork(string time);
  44. bool doAlignAndCut(string time);
  45. bool getNetworkParameter();
  46. public:
  47. ClassFlowCNNGeneral(ClassFlowAlignment *_flowalign, t_CNNType _cnntype = AutoDetect);
  48. bool ReadParameter(FILE* pfile, string& aktparamgraph);
  49. bool doFlow(string time);
  50. string getHTMLSingleStep(string host);
  51. string getReadout(int _analog, bool _extendedResolution = false, int prev = -1, float _vorgaengerAnalog = -1);
  52. void DrawROI(CImageBasis *_zw);
  53. std::vector<HTMLInfo*> GetHTMLInfo();
  54. int getAnzahlGENERAL();
  55. general* GetGENERAL(int _analog);
  56. general* GetGENERAL(string _name, bool _create);
  57. general* FindGENERAL(string _name_number);
  58. string getNameGENERAL(int _analog);
  59. bool isExtendedResolution(int _number = 0);
  60. void UpdateNameNumbers(std::vector<std::string> *_name_numbers);
  61. t_CNNType getCNNType(){return CNNType;};
  62. string name(){return "ClassFlowCNNGeneral";};
  63. };
  64. #endif