1
1
# Banana Project
2
2
3
- This is a mini-project for the software engineering course of the [ FHGR B.Sc. Mobile Robotics] ( https://fhgr.ch/mr ) ,
3
+ This is a mini-project for the image processing course of the [ FHGR B.Sc. Mobile Robotics] ( https://fhgr.ch/mr ) ,
4
4
implemented by [ Dominic Eicher] ( https://github.com/Nic822 ) and [ Ralph Ursprung] ( https://github.com/rursprung ) .
5
5
6
6
This project analyses pictures of bananas to try and identify some information about them (e.g. their ripeness).
7
7
Note that we will currently only support [ Cavendish Bananas] ( https://en.wikipedia.org/wiki/Cavendish_banana )
8
8
(_ the_ standard banana) as others may exhibit other properties (e.g. [ cooking bananas] ( https://en.wikipedia.org/wiki/Cooking_banana )
9
- are green even when ripe).
9
+ are green even when ripe).
10
+
11
+ Note that this implementation does _ not_ rely on any machine learning algorithms and instead employs traditional
12
+ image processing steps.
10
13
11
14
## Project Structure
12
15
13
16
The project consists of a library implementing the actual functionality and two applications, one feeding the library
14
17
with live pictures from an attached camera and one feeding it static images (mainly for manual testing).
18
+ Additionally, the 2D polyfitting library has been split into its own library as it is separate from the rest.
15
19
16
20
## Building
17
21
@@ -21,6 +25,29 @@ To build this project you will need:
21
25
* [ CMake] ( https://cmake.org/ ) incl. CTest - this might well come included with your favourite IDE
22
26
* [ vcpkg] ( https://vcpkg.io/ )
23
27
28
+ ## Sample Output
29
+
30
+ Here is an example of the application processing an image with two bananas on it:
31
+ ![ example screenshot] ( docs/example-screenshot.png )
32
+
33
+ Additionally, the following output is generated on the console, offering further information:
34
+ ```
35
+ found 2 banana(s) in the picture
36
+ Banana #0:
37
+ y = 1968.704538 -2.818917 * x +0.001434 * x^2
38
+ Rotation = -6.42 degrees
39
+ Mean curvature = 0.21 1/cm (corresponds to a circle with radius = 4.76 cm)
40
+ Length along center line = 9.59 cm
41
+ ripeness = 103 %
42
+
43
+ Banana #1:
44
+ y = 493.926139 -0.944471 * x +0.001329 * x^2
45
+ Rotation = 81.35 degrees
46
+ Mean curvature = 0.20 1/cm (corresponds to a circle with radius = 4.92 cm)
47
+ Length along center line = 9.46 cm
48
+ ripeness = 104 %
49
+ ```
50
+
24
51
## License
25
52
As this is purely an educational project there's no need for others to include it in their commercial works.
26
53
Accordingly, this is licensed under the ** GNU General Public License v3.0 or later** (SPDX: ` GPL-3.0-or-later ` ).
0 commit comments