├── image_acquisition
│ ├── db_analysis_computer_side.py
│ ├── raspberry_side.py
│ └── sync.sh # data synchronization between a db_analysis_computer and a raspberry pi
├── image_processing
│ ├── analysisResult # result images after execution ('visualization.m')
│ │ └── README.md
│ ├── raw_data # raw tray images
│ │ └── README.md
│ ├── test_data # preprocessed images after execution('preprocessing.py')
│ │ └── README.md
│ ├── train_data # ground truth images for training ('training.m')
│ │ └── README.md
│ ├── trainingResult
│ │ ├── training_rf.mat # random forest model after execution ('training.m')
│ │ ├── training_slicParameters.mat
│ │ └── training_superpixelData.mat
│ ├── vlfeat # libraries for generating superpixels
│ ├── draw_contours.m # function of draw superpixel using contours
│ ├── preprocessing.py # distortion correction, cropping, arrangement
│ ├── subdir.m # function of file searching recursively
│ ├── test.m # segmentation and data processing
│ ├── training.m # generating a classification model
│ └── visualization.m # visualization using segmented images
└── README.md
1. Check 'trainingDatasetPath'(Default : ./train_data)
2. Check 'trainingResultPath'(Default : ./trainingResult)
3. Execute 'training.m'
1. Check raw image source directory --> 'path'(Default : ./raw_data) in 'preprocessing.py'
2. Check processed image destination directory --> 'newpath'(Default : ./test_data) in 'preprocessing.py'
3. Execute python code
4. Check test images directory path --> 'testDatasetPath'(Default : ./test_data/*.bmp) in 'test.m'
5. Excecute test.m code
6. Check binary, segmentation, result directory path --> testBWPath(Default:./test_data/*_bwImg.bmp), testSegmentationPath(Default: ./test_data/*_segmentationImg.bmp), analysisResultPath(Default:./analysisResult) in 'visualization.m'
7. Execute 'visualization.m'
8. Check results in 'analysisResult' folder