Skip to content

Commit 80cc0d3

Browse files
committed
improved visuals + installation
1 parent 845c66c commit 80cc0d3

10 files changed

+162
-124
lines changed

Diff for: .DS_Store

0 Bytes
Binary file not shown.

Diff for: content/Plugins_dropdown.png

1015 Bytes
Loading

Diff for: content/cannyedge.md

+8-9
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ To do:
3737

3838
1. Convert the input-image to a `FloatProcessor` and apply a __gaussian blur__.
3939
<div style="background-color:rgb(235, 235, 235); border: 1px solid rgb(235, 235, 235); border-radius: 15px; padding: 15px; margin: 10px 0;">
40-
&#128221; <strong> Note: </strong>
40+
&#128221; <strong> Note: </strong> <br>
4141

4242
The $\sigma$-parameter is one of the values you can play around with later on to improve your results. Once you are done, you will be able to set this value via a user-dialog. For now, a good starting point would be the value __2__
4343
</div>
@@ -76,7 +76,7 @@ The atan2-method used to determine the direction returns the angle $\Theta$, tha
7676

7777
The getDir-method will determine the gradient-direction for each pixel and then round it to one of the following values: __0°, 45°, 90°, 135°__. These stem from the fact that an image is a discrete set of pixels and therefore we can only differentiate between these directions.
7878

79-
<center><img src="../edge-directions.png" width="650" height="150"></center>
79+
<center><img src="../edge-directions.png" width="650" height="160"></center>
8080

8181
<center>Gradient-directions: 0°, 45°, 90°, 135°</center>
8282

@@ -100,10 +100,9 @@ To do:
100100

101101
Negative values are simply "mapped" to the corresponding positive value (for example -45° &#8793; 135° or -90° &#8793; 90°). You can do this by simply checking if the value is negative and then adding __180°__. If the closest match is 180° the direction is set to 0°
102102
</div>
103-
104-
6. Return the final ByteProcessor
105103

106-
---
104+
6. Return the final ByteProcessor
105+
___
107106

108107
## 5.3: Non-Maximum-Suppression
109108

@@ -123,7 +122,7 @@ To do:
123122
4. If it is a local maximum, store the value in the output-FloatProcessor
124123
5. Return the final FloatProcessor
125124

126-
---
125+
___
127126

128127
## 5.4: Hysteresis Thresholding
129128

@@ -163,15 +162,15 @@ To avoid mistakes here, the following code, as well as the included `hasNeighbou
163162

164163
(__Out__ refers to the output-image. If you named it differently, you can obviously change the code accordingly)
165164

166-
1. Return the output image
165+
6. Return the output image
167166

168-
---
167+
___
169168

170169
Add a simple __user-dialog__ to the `run`-method, which allows you to select values for $\sigma$, the upper threshold and the lower threshold.
171170

172171
Finally perform the `getDir`,`nonMaxSuppress` and `hysteresisThreshold` steps in sequence within your `run`-method and display your final result.
173172

174-
---
173+
___
175174
## 5.5: Project-Report
176175

177176
The part of your report concerning Task_5 should contain the following:

Diff for: content/conclusion.md

+16-8
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,32 @@ author= "Mischa Dombrowski, Sebastian Dietz"
1717

1818

1919
# 6. Outlook and Conclusion
20-
You have now built all the tools needed to use the final provided plugin called `User_Interface`.
20+
21+
Congratulations, you have now built all the tools needed to use the final provided plugin called `User_Interface`.
2122
It allows you to play around with the different kinds of image-processing-techniques, you learned to apply over the course of this project.
2223

23-
In subsequent steps, segmentation can be for example be applied to facilitate or automate the diagnosis for the radiologist.
24-
There is great research interest in segmentation, edge detection, and various similar processing methods.
24+
Tools similar to those you implemented could for example be applied to facilitate or automate the diagnosis for radiologists.
25+
There is therefore great research interest in segmentation, edge detection, and various similar processing methods.
26+
27+
In your report you should:
2528

2629
* Name at least two examples of current trends in image processing. Provide citations for each example and describe them briefly.
2730
* For your examples, are they already applied to clinical routine? If not, do you think they soon will be? Try to explain why or why not.
2831

2932
In the last part, summarize what you have implemented and explained in your project report. Review the shortcomings of your approaches and how they could be mitigated in the future, and conclude your report.
3033

34+
___
35+
3136
## Submission
3237

3338
Once you are finished with your code and satisfied with the results, please compress the entire `src` folder into a zip file and upload it to StudOn.
34-
Afterward, write the report and submit the PDF file as well.
35-
The deadline for submission is **August 26<sup>th</sup> at 23:55** via **StudOn**. We recommend that you submit earlier versions of your project to avoid accidentally missing the deadline. Only the last version will be considered.
39+
Afterwards, write the report and submit the PDF file as well.
40+
41+
The deadline for submission is **August 26<sup>th</sup> at 23:55** via **StudOn**.
42+
43+
We recommend that you submit earlier versions of your project to avoid accidentally missing the deadline. Only the last version will be considered.
3644

37-
Thank you for your time and interest. We look forward to reading your reports and hope to see you again for future lectures, projects, or theses!
45+
Thank you for your time and interest! We look forward to reading your reports and hope to see you again for future lectures, projects, or theses!
3846

39-
Best regards,
40-
Your MT2 Team
47+
Best regards
48+
Your MT2-Team

Diff for: content/edgedetection.md

+18-9
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ author= "Sebastian Dietz, Mischa Dombrowski"
2020

2121
Similar to Thresholding and Segmentation, Edge-Detection is a commonly used technique in image processing (i.e. to descern boundarys of objects within an image etc.). In your project you will first be implementing a set of primitive edge-detection filters, as well as the more advanced Canny-Edge-Filter (Task 5).
2222

23-
---
23+
___
2424

2525
## 4.1: The Filter-Kernels
2626
There are a variety of different Kernels used for edge detection; some of the most common ones are Sobel, Scharr, and Prewitt - Kernels.
@@ -35,7 +35,7 @@ Using both the X- and Y-derivative of an image, you can then generate the __ima
3535
3636
This image-gradient will then show the edges as bright and the rest of the image as black.
3737

38-
---
38+
___
3939

4040
## 4.2: Filtering and Gradient
4141

@@ -48,11 +48,16 @@ To do:
4848
```
4949
2. Create a new `FloatProcessor` to store the resulting image
5050
3. Iterate through the input image and perform the convolution
51-
> __Note__:
52-
>Since you are working with a 3x3 kernel, you can't simply iterate through the entire image because you would encounter OutOfBounds-exceptions when getting to the rim of the image.
53-
For the sake of simplicity you can therefore ignore the outermost row/column of pixels.
51+
52+
<div style="background-color:rgb(235, 235, 235); border: 1px solid rgb(235, 235, 235); border-radius: 15px; padding: 15px; margin: 10px 0;">
53+
&#128221; <strong> Note: </strong> <br>
54+
Since you are working with a 3x3 kernel, you can't simply iterate through the entire image because you would encounter OutOfBounds-exceptions when getting to the rim of the image.
55+
For the sake of simplicity you can therefore ignore the outermost row/column of pixels.
56+
</div>
5457
4. Return the resulting image
5558

59+
___
60+
5661
Now that your plugin can perform a convolution (and therefore a derivation), you can calculate the image-gradient.
5762

5863
To do:
@@ -68,7 +73,7 @@ To do:
6873
4. Iterate through the image and calculate the Gradient value for each pixel in the output-image
6974
5. Return the resulting image-gradient
7075

71-
---
76+
___
7277

7378
## 4.3: User-Dialog
7479

@@ -85,15 +90,19 @@ To do:
8590
```
8691
3. Add a popup-menu to select which filter you want to use
8792

88-
__Tip__: Check the [ImageJ-API](https://imagej.net/ij/developer/api/ij/ij/gui/GenericDialog.html)
93+
<div style="background-color:rgb(235, 235, 235); border: 1px solid rgb(235, 235, 235); border-radius: 15px; padding: 15px; margin: 10px 0;">
94+
&#128161; <strong> Tip: </strong> Check the <a href="https://imagej.net/ij/developer/api/ij/ij/gui/GenericDialog.html">ImageJ-API</a> to see how popup-menus are implemented <br>
95+
</div>
96+
97+
8998

9099
4. Show the dialog
91-
5. Check if the dialog was cancelled. If yes, terminate the plugin
100+
5. Check if the dialog was cancelled. If it was, terminate the plugin
92101
6. Get the __index__ (in the popup-menu) of the selected filter
93102
7. Perform the edge-detection using the selected filter and the methods you implemented
94103
8. Show your result
95104

96-
---
105+
___
97106

98107
## 4.4: Project-Report
99108

Diff for: content/installation/_index.md

+24-21
Original file line numberDiff line numberDiff line change
@@ -8,56 +8,59 @@ author= "Sebastian Dietz, Mischa Dombrowski, Stephan Seitz"
88

99
# Project Setup:
1010

11-
Since you have been working with IntelliJ throughout the entire semester when working on your exercises, you should already have it installed on the device you intend to use.
11+
Since you have been working with IntelliJ throughout the entire semester when working on your exercises, you should already have it installed on the device you intend to use.
1212
If not, have a look at the setup-guide you were given at the beginning of the Semester and install it accordingly.
1313

1414
The setup for this project will work very similar to the setup for your exercises.
1515

16-
If you encounter any problems while setting up, feel free to ask your tutors.
16+
If you encounter any problems while setting up, feel free to ask your tutors.
1717

18-
To do:
18+
To do:
1919

20-
1. Download the project template from [Github](https://github.com/mt2-erlangen/project_ss2024).
20+
1. Download the project template from [Github](https://github.com/mt2-erlangen/project_ss2024).
2121
<br>
22-
1. Unpack the zip-file and be sure to select the file-destination such that it is not unpacked "into its own folder" (meaning that there would be a `project-ss25`-folder within the `project-ss25`-folder) as might be the case by default.
22+
23+
2. Unpack the zip-file and be sure to select the file-destination such that it is not unpacked "into its own folder" (meaning that there would be a `project-ss25`-folder within the `project-ss25`-folder) as might be the case by default.
2324
<br>
24-
1. Open IntelliJ and click **(File) &rarr; Open &rarr; project-ss25**
2525

26-
and hit `ok` to open the empty project template.
26+
3. Open IntelliJ and click **(File) &rarr; Open &rarr; project-ss25**
27+
28+
and hit `ok` to open the empty project template.
2729

28-
Make sure to select the entire `project-ss25`-folder and not one of the folders contained within.
30+
Make sure to select the entire `project-ss25`-folder and not one of the folders contained within.
2931
<br>
30-
1. Navigate to **File &rarr; Project Structure &rarr; Project** and select jbr-17 or 17 or a similar SDK.
31-
The SDK that works for you may vary depending on your device and the IntelliJ version you are using. If you have been working on your exercises, simply use the one that worked for you when setting up initially.
32+
33+
4. Navigate to **File &rarr; Project Structure &rarr; Project** and select jbr-17 or 17 or a similar SDK.
34+
The SDK that works for you may vary depending on your device and the IntelliJ version you are using. If you have been working on your exercises, simply use the one that worked for you when setting up initially.
3235
<br>
3336

34-
1. Navigate to **File → Project Structure → Modules → Paths**.
37+
5. Navigate to **File → Project Structure → Modules → Paths**.
3538
Check, that **Use module compile output path** is selected and that the
3639
**plugins**-folder contained in the is selected as the destination. If this is set
3740
incorrectly, simply use the folder-icon towards the right of the path to navigate to
3841
this folder and select it.
3942
<br>
4043

41-
1. In the same window select **Libraries** and make sure that **ij** is listed.
44+
6. In the same window select **Libraries** and make sure that **ij** is listed.
4245
If it is missing, add it by hitting **+ → Java** and selecting the ij.jar file that is contained within your project.
4346

44-
1. After concluding these steps your project structure should look something like this:
47+
7. After concluding these steps your project.structure should look something like this:
4548
<br/>
4649

47-
<center><img src="../project_structure.png" width="250" height="250"></center>
48-
49-
You should now be able to build your project without any errors.
50-
50+
<center><img src="../project_structure.png" width="240" height="320"></center>
51+
52+
You should now be able to build your project without any errors.
53+
5154
<br>
5255

53-
1. You can now right-click on the `ij.jar`-file in your project structure and select ``Run 'ij.jar'``. This should open the ImageJ interface. Check the `Plugins`-dropdown-menu. It should look like this:
56+
8. You can now right-click on the `ij.jar`-file in your project structure and select ``Run 'ij.jar'``. This should open the ImageJ interface. Check the `Plugins`-dropdown-menu. It should look like this:
5457
<br/>
5558

56-
<center><img src="../Plugins_dropdown.png" width="250" height="300"></center>
59+
<center><img src="../plugins_dropdown.png" width="250" height="300"></center>
5760

58-
Similar to the intitial exercise-setup, you should be able to run the included ``Setup_Test``- Plugin and the message should pop up.
61+
Similar to the intitial exercise-setup, you should be able to run the included ``Setup_Test``- Plugin and the message should pop up.
5962

60-
Once you are done with this and everything is working nicely, you can get started with working on your first task.
63+
Once you are done with this and everything is working nicely, you can get started with working on your first task.
6164

6265
## General Info:
6366

0 commit comments

Comments
 (0)