pineapple_core/
constant.rs

1// Copyright (c) 2025, Tom Ouellette
2// Licensed under the BSD 3-Clause License
3
4// All currently supported image formats
5pub const SUPPORTED_IMAGE_FORMATS: [&str; 18] = [
6    "avif", "bmp", "dds", "hdr", "ico", "jpeg", "jpg", "exr", "png", "pbm", "pgm", "ppm", "qoi",
7    "tga", "tif", "tiff", "webp", "npy",
8];
9
10// All currently supported array formats
11pub const SUPPORTED_ARRAY_FORMATS: [&str; 1] = ["json"];
12
13// The currently supported common image formats
14pub const IMAGE_DYNAMIC_FORMATS: [&str; 17] = [
15    "avif", "bmp", "dds", "hdr", "ico", "jpeg", "jpg", "exr", "png", "pbm", "pgm", "ppm", "qoi",
16    "tga", "tif", "tiff", "webp",
17];
18
19// The valid json keys indicating bounding box values
20pub const BOUNDING_BOX_JSON_VALID_KEYS: [&str; 7] = [
21    "bounding_boxes",
22    "bboxes",
23    "bbox",
24    "bounding_box",
25    "boxes",
26    "box",
27    "xyxy",
28];
29
30// The valid json keys indicating polygon values
31pub const POLYGON_JSON_VALID_KEYS: [&str; 5] =
32    ["polygons", "contours", "outlines", "shapes", "points"];
33
34// Factorial constants used currently in zernike descriptor calculations
35pub const FACTORIAL: [f32; 10] = [
36    1.0, 1.0, 2.0, 6.0, 24.0, 120.0, 720.0, 5040.0, 40320.0, 362880.0,
37];
38
39// Hard default settings for the gray-level co-occurence matrix calculations
40pub const GLCM_LEVELS: usize = 64;
41pub const GLCM_ARRAY_SIZE: usize = GLCM_LEVELS * GLCM_LEVELS;
42
43// Names for morphological descriptors
44pub const FORM_DESCRIPTOR_NAMES: [&str; 23] = [
45    "form_centroid_x",
46    "form_centroid_y",
47    "form_center_x",
48    "form_center_y",
49    "form_area",
50    "form_area_bbox",
51    "form_area_convex",
52    "form_perimeter",
53    "form_elongation",
54    "form_thread_length",
55    "form_thread_width",
56    "form_solidity",
57    "form_extent",
58    "form_form_factor",
59    "form_equivalent_diameter",
60    "form_eccentricity",
61    "form_major_axis",
62    "form_minor_axis",
63    "form_minimum_radius",
64    "form_maximum_radius",
65    "form_mean_radius",
66    "form_min_feret",
67    "form_max_feret",
68];
69
70pub const INTENSITY_DESCRIPTOR_NAMES: [&str; 7] = [
71    "intensity_min",
72    "intensity_max",
73    "intensity_sum",
74    "intensity_mean",
75    "intensity_std",
76    "intensity_median",
77    "intensity_mad",
78];
79
80pub const MOMENTS_DESCRIPTOR_NAMES: [&str; 24] = [
81    "moments_m00",
82    "moments_m10",
83    "moments_m01",
84    "moments_m11",
85    "moments_m20",
86    "moments_m02",
87    "moments_m21",
88    "moments_m12",
89    "moments_m30",
90    "moments_m03",
91    "moments_u11",
92    "moments_u20",
93    "moments_u02",
94    "moments_u21",
95    "moments_u12",
96    "moments_u30",
97    "moments_u03",
98    "moments_i1",
99    "moments_i2",
100    "moments_i3",
101    "moments_i4",
102    "moments_i5",
103    "moments_i6",
104    "moments_i7",
105];
106
107pub const TEXTURE_DESCRIPTOR_NAMES: [&str; 13] = [
108    "texture_energy",
109    "texture_contrast",
110    "texture_correlation",
111    "texture_sum_of_squares",
112    "texture_inverse_difference_moment",
113    "texture_sum_average",
114    "texture_sum_variance",
115    "texture_sum_entropy",
116    "texture_entropy",
117    "texture_difference_variance",
118    "texture_difference_entropy",
119    "texture_infocorr1",
120    "texture_infocorr2",
121];
122
123pub const ZERNIKE_DESCRIPTOR_NAMES: [&str; 30] = [
124    "zernike_00",
125    "zernike_11",
126    "zernike_20",
127    "zernike_22",
128    "zernike_31",
129    "zernike_33",
130    "zernike_40",
131    "zernike_42",
132    "zernike_44",
133    "zernike_51",
134    "zernike_53",
135    "zernike_55",
136    "zernike_60",
137    "zernike_62",
138    "zernike_64",
139    "zernike_66",
140    "zernike_71",
141    "zernike_73",
142    "zernike_75",
143    "zernike_77",
144    "zernike_80",
145    "zernike_82",
146    "zernike_84",
147    "zernike_86",
148    "zernike_88",
149    "zernike_91",
150    "zernike_93",
151    "zernike_95",
152    "zernike_97",
153    "zernike_99",
154];