Skip to content

Commit

Permalink
chore: Started to describe some more commands
Browse files Browse the repository at this point in the history
  • Loading branch information
joda01 committed Nov 12, 2024
1 parent 08b65f3 commit 00e2fe2
Show file tree
Hide file tree
Showing 6 changed files with 423 additions and 0 deletions.
31 changes: 31 additions & 0 deletions docs/fundamentals/commands/command_blur.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@

(command-blur)=
# Blur

:::{sidebar} Filter kernel

In image processing, a kernel, convolution matrix, or mask is a small matrix used for blurring, sharpening, embossing, edge detection, and more.
This is accomplished by doing a convolution between the kernel and an image.
Or more simply, when each pixel in the output image is a function of the nearby pixels (including itself) in the input image, the kernel is that function.



```{figure} images/blur_kernerl.drawio.svg
:class: full-image
```

https://en.wikipedia.org/wiki/Kernel_(image_processing)
:::

Blur algorithms are used to reduce image noise and details.

ImageC provides two different blur algorithms, "normal" blur and Gaussian blur.
For both the filter kernel size can be set.
The larger the kernel, the more details are removed from the image.

Gaussian blur uses a Gaussian function to blur the image.
Compared to the normal blur gaussian blur tends to preserve edges slightly better and avoids sharp transitions between blurred regions.

:::{hint}
Bigger filter kernels removes more noise and details from the image. Use gaussian blur to preserve edges in a better way than normal blur.
:::
37 changes: 37 additions & 0 deletions docs/fundamentals/commands/command_rolling_ball.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@

(command-rolling-ball)=
# Rolling ball

:::{sidebar} Thresholding


The rolling-ball algorithm was inspired by Stanley Sternberg’s article, “Biomedical Image Processing”, IEEE Computer, January 1983.

```{figure} images/rolling_ball_reseacrh_gate.jpeg
:class: full-image
```

:::


The rolling ball algorithm is a background subtraction algorithm, with the goal to remove most of the background noise.

This is achieved by creating a local background around a virtual ball.
Within the radius of the ball, the average intensity is calculated.
This is done for the entire image.
The result is subtracted from the original image.

This port from ImageJ contains two ball types, a spheral ball and a paraboloid.
A paraboloid handles edges more gently, reducing the appearance of artifacts along boundaries.
This is beneficial in applications such as microscopy, where accurate boundary representation is essential.

:::{hint}
The radius of the ball should be set to at least the size of the largest object that does not belong to the background.
:::

:::{note}
The implementation in ImageC was taken from the original ImageJ and ported to C++ based on the NIH Image Pascal version by Michael Castle and Janice Keller of the University of Michigan Mental Health Research Institute.
:::



Loading

0 comments on commit 00e2fe2

Please sign in to comment.