Skip to content

Commit f85c8b7

Browse files
authored
Merge pull request #23 from rursprung/final-readme-updates
final updates to the README
2 parents 7bb7be0 + e36a224 commit f85c8b7

File tree

3 files changed

+30
-3
lines changed

3 files changed

+30
-3
lines changed

README.md

+29-2
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
# Banana Project
22

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),
44
implemented by [Dominic Eicher](https://github.com/Nic822) and [Ralph Ursprung](https://github.com/rursprung).
55

66
This project analyses pictures of bananas to try and identify some information about them (e.g. their ripeness).
77
Note that we will currently only support [Cavendish Bananas](https://en.wikipedia.org/wiki/Cavendish_banana)
88
(_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.
1013

1114
## Project Structure
1215

1316
The project consists of a library implementing the actual functionality and two applications, one feeding the library
1417
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.
1519

1620
## Building
1721

@@ -21,6 +25,29 @@ To build this project you will need:
2125
* [CMake](https://cmake.org/) incl. CTest - this might well come included with your favourite IDE
2226
* [vcpkg](https://vcpkg.io/)
2327

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+
2451
## License
2552
As this is purely an educational project there's no need for others to include it in their commercial works.
2653
Accordingly, this is licensed under the **GNU General Public License v3.0 or later** (SPDX: `GPL-3.0-or-later`).

docs/example-screenshot.png

425 KB
Loading

src/lib.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ namespace banana {
5050
o << " Mean curvature = " << std::format("{:.2f}", banana.mean_curvature / 100) << " 1/cm"
5151
<< " (corresponds to a circle with radius = " << std::format("{:.2f}", 1/banana.mean_curvature * 100) << " cm)" << std::endl;
5252
o << " Length along center line = " << std::format("{:.2f}", banana.length * 100) << " cm" << std::endl;
53-
o << " ripeness= " << std::format("{:.0f}", banana.ripeness * 100) << " %" << std::endl;
53+
o << " ripeness = " << std::format("{:.0f}", banana.ripeness * 100) << " %" << std::endl;
5454
o << std::endl;
5555
}
5656

0 commit comments

Comments
 (0)