morphology {magick} | R Documentation |
Morphology
Description
Apply a morphology method. This is a very flexible function which can be used to apply any morphology method with custom parameters. See imagemagick website for examples.
Usage
image_morphology(
image,
method = "convolve",
kernel = "Gaussian",
iterations = 1,
opts = list()
)
image_convolve(
image,
kernel = "Gaussian",
iterations = 1,
scaling = NULL,
bias = NULL
)
Arguments
image |
magick image object returned by |
method |
a string with a valid method from |
kernel |
either a square matrix or a string. The string can either be a
parameterized kerneltype such as: |
iterations |
number of iterations |
opts |
a named list or character vector with custom attributes |
scaling |
string with kernel scaling. The special flag |
bias |
output bias string, for example |
See Also
Other image:
_index_
,
analysis
,
animation
,
attributes()
,
color
,
composite
,
defines
,
device
,
edges
,
editing
,
effects()
,
fx
,
geometry
,
ocr
,
options()
,
painting
,
segmentation
,
transform()
,
video
Examples
#example from IM website:
if(magick_config()$version > "6.8.8"){
pixel <- image_blank(1, 1, 'white') |> image_border('black', '5x5')
# See the effect of Dilate method
pixel |> image_scale('800%')
pixel |> image_morphology('Dilate', "Diamond") |> image_scale('800%')
# These produce the same output:
pixel |> image_morphology('Dilate', "Diamond", iter = 3) |> image_scale('800%')
pixel |> image_morphology('Dilate', "Diamond:3") |> image_scale('800%')
# Plus example
pixel |> image_morphology('Dilate', "Plus", iterations = 2) |> image_scale('800%')
# Rose examples
rose |> image_morphology('ErodeI', 'Octagon', iter = 3)
rose |> image_morphology('DilateI', 'Octagon', iter = 3)
rose |> image_morphology('OpenI', 'Octagon', iter = 3)
rose |> image_morphology('CloseI', 'Octagon', iter = 3)
# Edge detection
man <- demo_image('man.gif')
man |> image_morphology('EdgeIn', 'Octagon')
man |> image_morphology('EdgeOut', 'Octagon')
man |> image_morphology('Edge', 'Octagon')
# Octagonal Convex Hull
man |>
image_morphology('Close', 'Diamond') |>
image_morphology('Thicken', 'ConvexHull', iterations = 1)
# Thinning down to a Skeleton
man |> image_morphology('Thinning', 'Skeleton', iterations = 1)
# Specify custom kernel matrix usingn a string:
img <- demo_image("test_mag.gif")
i <- image_convolve(img, kernel = '4x5:
0 -1 0 0
-1 +1 -1 0
-1 +1 -1 0
-1 +1 +1 -1
0 -1 -1 0 ', bias = "50%")
}