You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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__
43
43
</div>
@@ -76,7 +76,7 @@ The atan2-method used to determine the direction returns the angle $\Theta$, tha
76
76
77
77
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.
Negative values are simply "mapped" to the corresponding positive value (for example -45° ≙ 135° or -90° ≙ 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°
102
102
</div>
103
-
104
-
6. Return the final ByteProcessor
105
103
106
-
---
104
+
6. Return the final ByteProcessor
105
+
___
107
106
108
107
## 5.3: Non-Maximum-Suppression
109
108
@@ -123,7 +122,7 @@ To do:
123
122
4. If it is a local maximum, store the value in the output-FloatProcessor
124
123
5. Return the final FloatProcessor
125
124
126
-
---
125
+
___
127
126
128
127
## 5.4: Hysteresis Thresholding
129
128
@@ -163,15 +162,15 @@ To avoid mistakes here, the following code, as well as the included `hasNeighbou
163
162
164
163
(__Out__ refers to the output-image. If you named it differently, you can obviously change the code accordingly)
165
164
166
-
1. Return the output image
165
+
6. Return the output image
167
166
168
-
---
167
+
___
169
168
170
169
Add a simple __user-dialog__ to the `run`-method, which allows you to select values for $\sigma$, the upper threshold and the lower threshold.
171
170
172
171
Finally perform the `getDir`,`nonMaxSuppress` and `hysteresisThreshold` steps in sequence within your `run`-method and display your final result.
173
172
174
-
---
173
+
___
175
174
## 5.5: Project-Report
176
175
177
176
The part of your report concerning Task_5 should contain the following:
Copy file name to clipboardExpand all lines: content/conclusion.md
+16-8
Original file line number
Diff line number
Diff line change
@@ -17,24 +17,32 @@ author= "Mischa Dombrowski, Sebastian Dietz"
17
17
18
18
19
19
# 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`.
21
22
It allows you to play around with the different kinds of image-processing-techniques, you learned to apply over the course of this project.
22
23
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:
25
28
26
29
* Name at least two examples of current trends in image processing. Provide citations for each example and describe them briefly.
27
30
* 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.
28
31
29
32
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.
30
33
34
+
___
35
+
31
36
## Submission
32
37
33
38
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.
36
44
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!
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).
22
22
23
-
---
23
+
___
24
24
25
25
## 4.1: The Filter-Kernels
26
26
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
35
35
36
36
This image-gradient will then show the edges as bright and the rest of the image as black.
37
37
38
-
---
38
+
___
39
39
40
40
## 4.2: Filtering and Gradient
41
41
@@ -48,11 +48,16 @@ To do:
48
48
```
49
49
2. Create a new `FloatProcessor` to store the resulting image
50
50
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.
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>
54
57
4. Return the resulting image
55
58
59
+
___
60
+
56
61
Now that your plugin can perform a convolution (and therefore a derivation), you can calculate the image-gradient.
57
62
58
63
To do:
@@ -68,7 +73,7 @@ To do:
68
73
4. Iterate through the image and calculate the Gradient value for each pixel in the output-image
69
74
5. Return the resulting image-gradient
70
75
71
-
---
76
+
___
72
77
73
78
## 4.3: User-Dialog
74
79
@@ -85,15 +90,19 @@ To do:
85
90
```
86
91
3. Add a popup-menu to select which filter you want to use
87
92
88
-
__Tip__: Check the [ImageJ-API](https://imagej.net/ij/developer/api/ij/ij/gui/GenericDialog.html)
💡 <strong> Tip: </strong> Check the <ahref="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
+
89
98
90
99
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
92
101
6. Get the __index__ (in the popup-menu) of the selected filter
93
102
7. Perform the edge-detection using the selected filter and the methods you implemented
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.
12
12
If not, have a look at the setup-guide you were given at the beginning of the Semester and install it accordingly.
13
13
14
14
The setup for this project will work very similar to the setup for your exercises.
15
15
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.
17
17
18
-
To do:
18
+
To do:
19
19
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).
21
21
<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.
23
24
<br>
24
-
1. Open IntelliJ and click **(File) → Open → project-ss25**
25
25
26
-
and hit `ok` to open the empty project template.
26
+
3. Open IntelliJ and click **(File) → Open → project-ss25**
27
+
28
+
and hit `ok` to open the empty project template.
27
29
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.
29
31
<br>
30
-
1. Navigate to **File → Project Structure → 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 → Project Structure → 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.
You should now be able to build your project without any errors.
53
+
51
54
<br>
52
55
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:
0 commit comments