3 #define DEMO_IMAGE "../../../../bmp/frame0206.bmp"
27 #include <opencv2/core/core.hpp>
28 #include <opencv2/highgui/highgui.hpp>
29 #include <opencv2/imgproc/imgproc.hpp>
31 #include <Classification/NearestNeighbor.h>
32 #include <Helpers/helpers.h>
33 #include <Image/ByteImage.h>
34 #include <Image/FloatImage.h>
35 #include <Image/ImageProcessor.h>
36 #include <Image/IntImage.h>
37 #include <Image/PrimitivesDrawer.h>
38 #include <Image/ShortImage.h>
39 #include <Interfaces/MainWindowEventInterface.h>
40 #include <Interfaces/MainWindowInterface.h>
41 #include <Math/Vecd.h>
42 #include <VideoCapture/BitmapCapture.h>
51 HoG(
int numOfBing = 16,
54 int minRandomWindow = 20,
55 int randomWindowScaleFloor = 1,
56 int randomWindowScaleCeil = 2);
62 bool hogDescriptor(CByteImage* origin, CFloatImage* outImage, CFloatImage* amplitude);
63 void calculateHist(
int range,
65 CFloatImage* inputImg,
66 std::vector<float>* output,
67 CFloatImage* amplitude);
68 void histogramNorm(std::vector<float>*
input, std::vector<float>* normOutput);
69 float distanceBetweenPoints(std::vector<float> firstPoint,
70 std::vector<float> secondPoint,
73 void findThreeNearstNeighbors(std::vector<float> testWindow,
74 std::vector<std::vector<float>> trainingHistTable,
76 std::pair<std::vector<float>*,
int>* nearstNeighbor,
77 std::pair<std::vector<float>*,
int>* secondNeighbor,
78 std::pair<std::vector<float>*,
int>* thirdNeighbor,
79 float* nearstDistance,
80 float* secondDistance,
81 float* thirdDistance);
82 bool knn(std::vector<std::vector<float>> trainingHistTable,
83 std::vector<std::vector<float>> trainingHistTableNegative,
84 std::vector<float> testWindow);
85 void preprocess(
const CByteImage* origin, CByteImage* outImage);
86 void histogramRotationInvariant(std::vector<float>* inputHist, std::vector<float>* outputHist);
90 doLoadTrainingData(std::string path, std::vector<std::vector<float>>& histTable,
int scaling);
92 std::vector<std::vector<float>> trainingHistTable;
93 std::vector<std::vector<float>> trainingHistTableNegative;
94 std::vector<std::vector<float>> samplHistTable;
98 int minimumRandomWindow;
99 int randomWindowScaleRateFloor;
100 int randomWindowScaleRateCeil;
105 bool useHoughDetector;