-
Notifications
You must be signed in to change notification settings - Fork 42
/
operations.txt
75 lines (57 loc) · 1.64 KB
/
operations.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Suggestions of operations that might be part of the imagej-ops package one day:
(Img stands for II and RA, too; [param] are optional)
Thoughts on the naming of operations and their implementations:
- operations are identified by the verb describing what they do (or a short version)
- the implementation should also _start_ with the same verb, what makes it easier to find (e.g. Project instead of DefaultProjector, Threshold instead of GlobalThresholder, ...)
- verb followed by the data type (or abbreviation) the operation works on (e.g. II, RA, RealType, ...)
- ...
//arithmetics
add(Img,Img) -> Img
mul
div
sub
sqrt
log
exp
min(Img,Img) -> Img
max
eval(Img[], math expression) -> Img
//reduce
mean(Img) -> double
median
max
min
histogram(Img)-> int[]
//binary operations
erode(Img<BitType>) -> Img<BitType>
dilate
open
close
thinning/skeletonize
fillholes
outline
//important image operations
threshold(Img) -> Img<BitType>
localThreshold
invert(Img) -> Img
convolve(Img,Img) -> Img
smooth(Img) -> Img
sharpen
findedges
project(Img, Axis) -> Img //projects one dimension of the image on the other (e.g. by taking the mean, maximum etc.)
convert(Img<I>, Function) -> Img<O>
normalize(Img,[saturation]) -> Img
scale(Img, double[]) -> Img
crop(Img, Interval[]) -> Img
swapdim(Img,Map<Axis, Axis>) -> Img
split(Img, Axes[], ...) -> Img[]
merge(Img[],...) -> Img
affineT(Img, matrix) -> Img
//misc
map(Img,Function) -> Img //pixel-wise operation or hyperslicing
//segmentation
cca(Img<T>, neighboorhood, [T background]) -> Labeling
findSeeds([Img],...) -> Labeling
watershed(Img, Labeling seeds) -> Labeling
lab2img(Img) -> Labeling
img2lab(Labeling) -> Img