Commit fec24760 authored by Toby Hodges's avatar Toby Hodges

Merge branch 'binarization' into 'master'

Binarization

See merge request grp-bio-it/image-analysis-training-resources!28
parents e23932a0 bac8e727
Pipeline #10103 passed with stage
in 46 seconds
This file should contain language-specific exercises, *written* in **Markdown**
### Exercise 1
...but probably with some HTML mixed in, so that you can add expandable Solution boxes.
#### Exercise 1
What is the solution to the first exercise?
Please...
<details>
<summary>Solution</summary>
This is the solution to the first exercise.
</details>
#### Exercise 2
What is the solution to the second exercise?
<details>
<summary>Solution</summary>
This is the solution to the second exercise.
</details>
......@@ -91,8 +91,11 @@ window.onload = set_view_defaults;
</header>
{% if page.prerequisites %}
<div class="prerequisites">
<br>
<br>
<h2>Prerequisites</h2>
Before starting this lesson, you should be familiar with:
Before starting this lesson, you should be familiar with:<br>
<br>
<ul>
{% for prereq in page.prerequisites %}
<li>{{ prereq | markdownify }}</li>
......@@ -101,8 +104,11 @@ window.onload = set_view_defaults;
</div>
{% endif %}
<div class="learning-objectives">
<br>
<br>
<h2>Learning Objectives</h2>
After completing this lesson, learners should be able to:
After completing this lesson, learners should be able to:<br>
<br>
<ul>
{% for objective in page.objectives %}
<li>{{ objective | markdownify }}</li>
......@@ -110,15 +116,21 @@ window.onload = set_view_defaults;
</ul>
</div>
<br>
<br>
<h2>Motivation</h2>
{{ page.motivation | markdownify }}
<br>
<br>
<h2>Concept map</h2>
<div class="mermaid">
{{ page.concept_map }}
</div>
<br>
<br>
<h2>Example</h2>
<figure>
......@@ -132,6 +144,8 @@ window.onload = set_view_defaults;
{{ content }}
</div>
<br>
<br>
<h2>Activity</h2>
{% if page.activity_preface %}
......@@ -139,7 +153,7 @@ window.onload = set_view_defaults;
{% endif %}
{% if page.activities %}
Choose a platform to display instructions for: <select id="id_activity_platform" name="activityplatformlist" onchange="change_activity_content_by_platform('id_activity_platform');return false;">
Show activity for: <select id="id_activity_platform" name="activityplatformlist" onchange="change_activity_content_by_platform('id_activity_platform');return false;">
{% assign first = true %}
{% endif %}
{% for platform in page.activities %}
......@@ -166,6 +180,9 @@ Choose a platform to display instructions for: <select id="id_activity_platform"
{% endfor %}
{% if page.exercises_preface or page.exercises %}
<br>
<br>
<h2>Formative assessment</h2>
{% endif %}
......@@ -174,7 +191,7 @@ Choose a platform to display instructions for: <select id="id_activity_platform"
{% endif %}
{% if page.exercises %}
Choose a platform to display instructions for: <select id="id_exercises_platform" name="exercisesplatformlist" onchange="change_exercises_content_by_platform('id_exercises_platform');return false;">
Perform additional excercises for: <select id="id_exercises_platform" name="exercisesplatformlist" onchange="change_exercises_content_by_platform('id_exercises_platform');return false;">
{% assign first = true %}
{% endif %}
{% for platform in page.exercises %}
......@@ -199,6 +216,8 @@ Choose a platform to display instructions for: <select id="id_exercises_platform
</div>
{% endfor %}
<br>
<br>
<h2>Follow-up material</h2>
<ul>
......@@ -207,6 +226,8 @@ Choose a platform to display instructions for: <select id="id_exercises_platform
{% endfor %}
</ul>
<br>
<br>
<h2>Learn more</h2>
<ul>
......
figures/binarization.png

58.7 KB | W: | H:

figures/binarization.png

74.5 KB | W: | H:

figures/binarization.png
figures/binarization.png
figures/binarization.png
figures/binarization.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -2,46 +2,48 @@
title: Image binarization
layout: module
prerequisites:
- "the concepts of image files, pixels, and intensity"
- "something else __that__ `requires` _formatting_"
- "[Basic properties of images and pixels](pixels)"
objectives:
- "describe the relationship between an intensity image and a derived binary image"
- "use thresholding to distinguish foreground and background pixels"
- "Describe the relationship between an intensity image and a derived binary image"
- "Apply a threshold to distinguish foreground and background pixels"
motivation: >
A description of *why* you would want to learn this.
Can be written in
(GitHub-flavoured) [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)
and split
across
multiple
lines.
Very often, one wants to detect objects or specific regions in images. Typically, the first step to achieve this aim is to distinguish so-called background pixels, which do not contain objects or interesting regions, from foreground pixels, which mark the areas of interest. The foreground regions can than be further processed, e.g to detect objects or perform measurements.
concept_map: >
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car];
PV(Pixel values) --> |>= threshold| FG(Foreground 1,255)
PV(Pixel values) --> |< threshold| BG(Background 0)
BG --> BPV(Binarized pixel values)
FG --> BPV(Binarized pixel values)
figure: /figures/binarization.png
figure_legend: Some description of the figure (optional)
figure_legend: An image before and after applying a threshold. Can you see what the treshold value was?
activity_preface: >
Open an image and binarize it by applying a threshold.
activities:
"ImageJ GUI": "binarization/activities/binarization_imagejgui.md"
"ImageJ Macro": "binarization/activities/binarization_imagejmacro.md"
"Jython": "binarization/activities/binarization_jython.md"
"MATLAB": "binarization/activities/binarization_matlab.md"
exercises_preface: >
You could put general, language-agnostic questions here...
### Fill in the blanks
- Pixels in a binary image can have maximally ___ different values.
- If the threshold is larger than the maximal pixel value in the intensity image, all pixels in the binary image have a value of ___.
exercises:
"ImageJ GUI": "binarization/exercises/binarization_imagejgui.md"
"ImageJ Macro": "binarization/exercises/binarization_imagejmacro.md"
"Jython": "binarization/exercises/binarization_jython.md"
"MATLAB": "binarization/exercises/binarization_matlab.md"
learn_next:
- "[name_of_one](calibration)"
- "[or_more_modules](display)"
- "[to link to next](filter_convolution)"
- "[Algorithms to automatically determine a threshold value](auto_threshold)"
- "[Finding objects in a binary image](connected_components)"
external_links:
- "[link to](https://external.page.com)"
- "[Wikipedia: Binary image](https://en.wikipedia.org/wiki/Binary_image)"
---
# 2018 May 7th-9th: Basics of Image Analysis using ImageJ
## Location:
ATC Computer Training Lab
## Computers
Computers with ImageJ and course data will be installed. Thus, you do not need to bring your laptop.
If you prefer to work on your own computer, please:
- Install Fiji: https://imagej.net/Fiji/Downloads
- Download course material: https://github.com/tischi/imagej-courses/archive/master.zip
- Please download again on Monday morning as there will most likely be some last minute changes!
## Prerequisites
In order to save some time, and since many of you took part in the ALMF Basics in Microscopy courses, we will not repeat what has been taught there already. If you did not attend it would be good if you could have a look at the material:
- Basic handling of the [ImageJ](https://fiji.sc/) software
- [Image inspection and handling](https://github.com/tischi/imagej-courses/blob/master/practicals/basic-image-inspection-and-handling.md)
- [3D image inspection](https://github.com/tischi/imagej-courses/blob/master/practicals/3D-image-inspection.md)
But, don't worry, even if you don't know above material you'll be able to follow the course.
## Schedule
### Monday May 7th
| Time | Topic |
|------|-------|
| 09:30 - 10:00 | Welcome and self-introduction |
| 10:00 - 12:30 | Practical: [Basics of intensity measurements](https://github.com/tischi/imagej-courses/blob/master/practicals/intensity-quantification.md) |
| 12:30 - 13:30 | Lunch break |
| 13:30 - 15:00 | Practical: [Image segmentation: Manual thresholding, Signal to noise, Image filtering](https://github.com/tischi/imagej-courses/blob/master/practicals/image-segmentation.md) |
| 15:30 - 16:30 | Practical: [Image segmentation: Automated local background subtraction](https://github.com/tischi/imagej-courses/blob/master/practicals/workflow-2d-intracellular-spot-detection.md#local-background-subtraction-) |
| 16:30 - 17:30 | Practical: [Image segmentation: Automated global thresholding](https://github.com/tischi/imagej-courses/blob/master/practicals/image-segmentation.md#automated-global-thresholding)|
| 00:00 - 00:00 | Recommended home-work: [Intensity quantification: Automated local background subtraction](https://github.com/tischi/imagej-courses/blob/master/practicals/automated-local-background-subtraction-for-intensity-quantifications.md#intensity-measurements-with-automated-local-background-subtraction--) |
### Tuesday May 8th
| Time | Topic |
|------|-------|
| 09:30 - 12:30 | Practical: [Workflow for intracellular object quantification](https://github.com/tischi/imagej-courses/blob/master/practicals/workflow-2d-intracellular-spot-detection.md#workflow-autophagosome-quantification) |
| 12:30 - 13:30 | Lunch break |
| 13:30 - 14:30 | Practical: [3D image analysis](https://github.com/tischi/imagej-courses/blob/master/practicals/3D-analysis.md) |
| 14:30 - 15:30 | Brief lectures & demonstrations: [Supervised pixel classification](https://github.com/tischi/imagej-courses/blob/master/practicals/supervised-pixel-classification.md#supervised-pixel-classification), [Supervised object classification](https://github.com/tischi/imagej-courses/blob/master/practicals/supervised-object-classification.md#supervised-object-classification), [Registration](https://github.com/tischi/imagej-courses/blob/master/practicals/image-registration.md), Stitching, Dealing with complex data formats |
| 15:30 - 16:15 | Practical: [Colocalization](https://github.com/tischi/imagej-courses/blob/master/practicals/colocalisation.md#colocalisation) |
| 16:15 - 17:30 | Practical: [Tracking using TrackMate](https://github.com/tischi/imagej-courses/blob/master/practicals/tracking-with-trackmate.md) |
### Wednesday May 9th
| Time | Topic |
|------|-------|
| 09:30 - 11:30 | Practical: [Macro recording and scripting in ImageJ](https://github.com/tischi/imagej-courses/blob/master/practicals/macro-recording.md) |
| 11:30 - 12:30 | Brief mentionings: [CellProfiler](http://cellprofiler.org/tutorials/), [Imaris](http://www.bitplane.com/learning), [KNIME](https://www.knime.com/community/image-processing), [shinyHTM](https://github.com/hmbotelho/shinyHTM#shinyhtm) |
| 12:30 - 13:30 | Lunch break |
| 13:30 - 17:00 | Practical: Work on own data (optional session) |
### Further information
Don't worry, there will be coffee breaks, one in the morning and one in the afternoon, even though they are not explicitly scheduled :-)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment