image-js 0.0.0-next-e30968a2d8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (867) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +29 -0
  3. package/lib/IJS.d.ts +316 -0
  4. package/lib/IJS.d.ts.map +1 -0
  5. package/lib/IJS.js +534 -0
  6. package/lib/IJS.js.map +1 -0
  7. package/lib/Mask.d.ts +257 -0
  8. package/lib/Mask.d.ts.map +1 -0
  9. package/lib/Mask.js +338 -0
  10. package/lib/Mask.js.map +1 -0
  11. package/lib/compute/histogram.d.ts +20 -0
  12. package/lib/compute/histogram.d.ts.map +1 -0
  13. package/lib/compute/histogram.js +28 -0
  14. package/lib/compute/histogram.js.map +1 -0
  15. package/lib/compute/index.d.ts +2 -0
  16. package/lib/compute/index.d.ts.map +1 -0
  17. package/lib/compute/index.js +18 -0
  18. package/lib/compute/index.js.map +1 -0
  19. package/lib/filters/and.d.ts +17 -0
  20. package/lib/filters/and.d.ts.map +1 -0
  21. package/lib/filters/and.js +29 -0
  22. package/lib/filters/and.js.map +1 -0
  23. package/lib/filters/blur.d.ts +37 -0
  24. package/lib/filters/blur.d.ts.map +1 -0
  25. package/lib/filters/blur.js +22 -0
  26. package/lib/filters/blur.js.map +1 -0
  27. package/lib/filters/convolution.d.ts +79 -0
  28. package/lib/filters/convolution.d.ts.map +1 -0
  29. package/lib/filters/convolution.js +196 -0
  30. package/lib/filters/convolution.js.map +1 -0
  31. package/lib/filters/derivativeFilter.d.ts +40 -0
  32. package/lib/filters/derivativeFilter.d.ts.map +1 -0
  33. package/lib/filters/derivativeFilter.js +42 -0
  34. package/lib/filters/derivativeFilter.js.map +1 -0
  35. package/lib/filters/gaussianBlur.d.ts +59 -0
  36. package/lib/filters/gaussianBlur.d.ts.map +1 -0
  37. package/lib/filters/gaussianBlur.js +59 -0
  38. package/lib/filters/gaussianBlur.js.map +1 -0
  39. package/lib/filters/gradientFilter.d.ts +54 -0
  40. package/lib/filters/gradientFilter.d.ts.map +1 -0
  41. package/lib/filters/gradientFilter.js +58 -0
  42. package/lib/filters/gradientFilter.js.map +1 -0
  43. package/lib/filters/hypotenuse.d.ts +23 -0
  44. package/lib/filters/hypotenuse.d.ts.map +1 -0
  45. package/lib/filters/hypotenuse.js +46 -0
  46. package/lib/filters/hypotenuse.js.map +1 -0
  47. package/lib/filters/index.d.ts +11 -0
  48. package/lib/filters/index.d.ts.map +1 -0
  49. package/lib/filters/index.js +27 -0
  50. package/lib/filters/index.js.map +1 -0
  51. package/lib/filters/invert.d.ts +11 -0
  52. package/lib/filters/invert.d.ts.map +1 -0
  53. package/lib/filters/invert.js +37 -0
  54. package/lib/filters/invert.js.map +1 -0
  55. package/lib/filters/or.d.ts +17 -0
  56. package/lib/filters/or.d.ts.map +1 -0
  57. package/lib/filters/or.js +29 -0
  58. package/lib/filters/or.js.map +1 -0
  59. package/lib/filters/subtractImage.d.ts +13 -0
  60. package/lib/filters/subtractImage.d.ts.map +1 -0
  61. package/lib/filters/subtractImage.js +64 -0
  62. package/lib/filters/subtractImage.js.map +1 -0
  63. package/lib/geometry/index.d.ts +4 -0
  64. package/lib/geometry/index.d.ts.map +1 -0
  65. package/lib/geometry/index.js +20 -0
  66. package/lib/geometry/index.js.map +1 -0
  67. package/lib/geometry/resize.d.ts +52 -0
  68. package/lib/geometry/resize.d.ts.map +1 -0
  69. package/lib/geometry/resize.js +107 -0
  70. package/lib/geometry/resize.js.map +1 -0
  71. package/lib/geometry/rotate.d.ts +54 -0
  72. package/lib/geometry/rotate.d.ts.map +1 -0
  73. package/lib/geometry/rotate.js +44 -0
  74. package/lib/geometry/rotate.js.map +1 -0
  75. package/lib/geometry/transform.d.ts +46 -0
  76. package/lib/geometry/transform.d.ts.map +1 -0
  77. package/lib/geometry/transform.js +95 -0
  78. package/lib/geometry/transform.js.map +1 -0
  79. package/lib/index.d.ts +10 -0
  80. package/lib/index.d.ts.map +1 -0
  81. package/lib/index.js +26 -0
  82. package/lib/index.js.map +1 -0
  83. package/lib/load/decode.d.ts +10 -0
  84. package/lib/load/decode.d.ts.map +1 -0
  85. package/lib/load/decode.js +33 -0
  86. package/lib/load/decode.js.map +1 -0
  87. package/lib/load/decodeJpeg.d.ts +9 -0
  88. package/lib/load/decodeJpeg.d.ts.map +1 -0
  89. package/lib/load/decodeJpeg.js +20 -0
  90. package/lib/load/decodeJpeg.js.map +1 -0
  91. package/lib/load/decodePng.d.ts +9 -0
  92. package/lib/load/decodePng.d.ts.map +1 -0
  93. package/lib/load/decodePng.js +72 -0
  94. package/lib/load/decodePng.js.map +1 -0
  95. package/lib/load/decodeTiff.d.ts +9 -0
  96. package/lib/load/decodeTiff.d.ts.map +1 -0
  97. package/lib/load/decodeTiff.js +64 -0
  98. package/lib/load/decodeTiff.js.map +1 -0
  99. package/lib/load/index.d.ts +8 -0
  100. package/lib/load/index.d.ts.map +1 -0
  101. package/lib/load/index.js +24 -0
  102. package/lib/load/index.js.map +1 -0
  103. package/lib/load/read.d.ts +17 -0
  104. package/lib/load/read.d.ts.map +1 -0
  105. package/lib/load/read.js +31 -0
  106. package/lib/load/read.js.map +1 -0
  107. package/lib/load/readCanvas.d.ts +3 -0
  108. package/lib/load/readCanvas.d.ts.map +1 -0
  109. package/lib/load/readCanvas.js +17 -0
  110. package/lib/load/readCanvas.js.map +1 -0
  111. package/lib/load/readImg.d.ts +3 -0
  112. package/lib/load/readImg.d.ts.map +1 -0
  113. package/lib/load/readImg.js +17 -0
  114. package/lib/load/readImg.js.map +1 -0
  115. package/lib/morphology/bottomHat.d.ts +19 -0
  116. package/lib/morphology/bottomHat.d.ts.map +1 -0
  117. package/lib/morphology/bottomHat.js +46 -0
  118. package/lib/morphology/bottomHat.js.map +1 -0
  119. package/lib/morphology/cannyEdgeDetector.d.ts +49 -0
  120. package/lib/morphology/cannyEdgeDetector.d.ts.map +1 -0
  121. package/lib/morphology/cannyEdgeDetector.js +157 -0
  122. package/lib/morphology/cannyEdgeDetector.js.map +1 -0
  123. package/lib/morphology/clearBorder.d.ts +22 -0
  124. package/lib/morphology/clearBorder.d.ts.map +1 -0
  125. package/lib/morphology/clearBorder.js +89 -0
  126. package/lib/morphology/clearBorder.js.map +1 -0
  127. package/lib/morphology/close.d.ts +19 -0
  128. package/lib/morphology/close.d.ts.map +1 -0
  129. package/lib/morphology/close.js +41 -0
  130. package/lib/morphology/close.js.map +1 -0
  131. package/lib/morphology/dilate.d.ts +20 -0
  132. package/lib/morphology/dilate.d.ts.map +1 -0
  133. package/lib/morphology/dilate.js +199 -0
  134. package/lib/morphology/dilate.js.map +1 -0
  135. package/lib/morphology/erode.d.ts +20 -0
  136. package/lib/morphology/erode.d.ts.map +1 -0
  137. package/lib/morphology/erode.js +199 -0
  138. package/lib/morphology/erode.js.map +1 -0
  139. package/lib/morphology/floodFill.d.ts +22 -0
  140. package/lib/morphology/floodFill.d.ts.map +1 -0
  141. package/lib/morphology/floodFill.js +20 -0
  142. package/lib/morphology/floodFill.js.map +1 -0
  143. package/lib/morphology/index.d.ts +11 -0
  144. package/lib/morphology/index.d.ts.map +1 -0
  145. package/lib/morphology/index.js +27 -0
  146. package/lib/morphology/index.js.map +1 -0
  147. package/lib/morphology/morphologicalGradient.d.ts +19 -0
  148. package/lib/morphology/morphologicalGradient.d.ts.map +1 -0
  149. package/lib/morphology/morphologicalGradient.js +43 -0
  150. package/lib/morphology/morphologicalGradient.js.map +1 -0
  151. package/lib/morphology/open.d.ts +19 -0
  152. package/lib/morphology/open.d.ts.map +1 -0
  153. package/lib/morphology/open.js +43 -0
  154. package/lib/morphology/open.js.map +1 -0
  155. package/lib/morphology/topHat.d.ts +19 -0
  156. package/lib/morphology/topHat.d.ts.map +1 -0
  157. package/lib/morphology/topHat.js +44 -0
  158. package/lib/morphology/topHat.js.map +1 -0
  159. package/lib/operations/convertColor.d.ts +32 -0
  160. package/lib/operations/convertColor.d.ts.map +1 -0
  161. package/lib/operations/convertColor.js +148 -0
  162. package/lib/operations/convertColor.js.map +1 -0
  163. package/lib/operations/convertDepth.d.ts +10 -0
  164. package/lib/operations/convertDepth.d.ts.map +1 -0
  165. package/lib/operations/convertDepth.js +60 -0
  166. package/lib/operations/convertDepth.js.map +1 -0
  167. package/lib/operations/copyTo.d.ts +29 -0
  168. package/lib/operations/copyTo.d.ts.map +1 -0
  169. package/lib/operations/copyTo.js +51 -0
  170. package/lib/operations/copyTo.js.map +1 -0
  171. package/lib/operations/grey.d.ts +50 -0
  172. package/lib/operations/grey.d.ts.map +1 -0
  173. package/lib/operations/grey.js +86 -0
  174. package/lib/operations/grey.js.map +1 -0
  175. package/lib/operations/greyAlgorithms.d.ts +149 -0
  176. package/lib/operations/greyAlgorithms.d.ts.map +1 -0
  177. package/lib/operations/greyAlgorithms.js +242 -0
  178. package/lib/operations/greyAlgorithms.js.map +1 -0
  179. package/lib/operations/index.d.ts +8 -0
  180. package/lib/operations/index.d.ts.map +1 -0
  181. package/lib/operations/index.js +24 -0
  182. package/lib/operations/index.js.map +1 -0
  183. package/lib/operations/merge.d.ts +9 -0
  184. package/lib/operations/merge.d.ts.map +1 -0
  185. package/lib/operations/merge.js +51 -0
  186. package/lib/operations/merge.js.map +1 -0
  187. package/lib/operations/split.d.ts +9 -0
  188. package/lib/operations/split.d.ts.map +1 -0
  189. package/lib/operations/split.js +23 -0
  190. package/lib/operations/split.js.map +1 -0
  191. package/lib/operations/threshold.d.ts +58 -0
  192. package/lib/operations/threshold.d.ts.map +1 -0
  193. package/lib/operations/threshold.js +114 -0
  194. package/lib/operations/threshold.js.map +1 -0
  195. package/lib/operations/thresholds/huang.d.ts +8 -0
  196. package/lib/operations/thresholds/huang.d.ts.map +1 -0
  197. package/lib/operations/thresholds/huang.js +81 -0
  198. package/lib/operations/thresholds/huang.js.map +1 -0
  199. package/lib/operations/thresholds/intermodes.d.ts +8 -0
  200. package/lib/operations/thresholds/intermodes.d.ts.map +1 -0
  201. package/lib/operations/thresholds/intermodes.js +62 -0
  202. package/lib/operations/thresholds/intermodes.js.map +1 -0
  203. package/lib/operations/thresholds/isodata.d.ts +8 -0
  204. package/lib/operations/thresholds/isodata.d.ts.map +1 -0
  205. package/lib/operations/thresholds/isodata.js +55 -0
  206. package/lib/operations/thresholds/isodata.js.map +1 -0
  207. package/lib/operations/thresholds/li.d.ts +9 -0
  208. package/lib/operations/thresholds/li.d.ts.map +1 -0
  209. package/lib/operations/thresholds/li.js +77 -0
  210. package/lib/operations/thresholds/li.js.map +1 -0
  211. package/lib/operations/thresholds/maxEntropy.d.ts +9 -0
  212. package/lib/operations/thresholds/maxEntropy.d.ts.map +1 -0
  213. package/lib/operations/thresholds/maxEntropy.js +80 -0
  214. package/lib/operations/thresholds/maxEntropy.js.map +1 -0
  215. package/lib/operations/thresholds/mean.d.ts +9 -0
  216. package/lib/operations/thresholds/mean.d.ts.map +1 -0
  217. package/lib/operations/thresholds/mean.js +26 -0
  218. package/lib/operations/thresholds/mean.js.map +1 -0
  219. package/lib/operations/thresholds/minError.d.ts +9 -0
  220. package/lib/operations/thresholds/minError.d.ts.map +1 -0
  221. package/lib/operations/thresholds/minError.js +90 -0
  222. package/lib/operations/thresholds/minError.js.map +1 -0
  223. package/lib/operations/thresholds/minimum.d.ts +8 -0
  224. package/lib/operations/thresholds/minimum.d.ts.map +1 -0
  225. package/lib/operations/thresholds/minimum.js +78 -0
  226. package/lib/operations/thresholds/minimum.js.map +1 -0
  227. package/lib/operations/thresholds/moments.d.ts +9 -0
  228. package/lib/operations/thresholds/moments.d.ts.map +1 -0
  229. package/lib/operations/thresholds/moments.js +62 -0
  230. package/lib/operations/thresholds/moments.js.map +1 -0
  231. package/lib/operations/thresholds/otsu.d.ts +9 -0
  232. package/lib/operations/thresholds/otsu.d.ts.map +1 -0
  233. package/lib/operations/thresholds/otsu.js +43 -0
  234. package/lib/operations/thresholds/otsu.js.map +1 -0
  235. package/lib/operations/thresholds/percentile.d.ts +8 -0
  236. package/lib/operations/thresholds/percentile.d.ts.map +1 -0
  237. package/lib/operations/thresholds/percentile.js +39 -0
  238. package/lib/operations/thresholds/percentile.js.map +1 -0
  239. package/lib/operations/thresholds/renyiEntropy.d.ts +9 -0
  240. package/lib/operations/thresholds/renyiEntropy.d.ts.map +1 -0
  241. package/lib/operations/thresholds/renyiEntropy.js +133 -0
  242. package/lib/operations/thresholds/renyiEntropy.js.map +1 -0
  243. package/lib/operations/thresholds/shanbhag.d.ts +10 -0
  244. package/lib/operations/thresholds/shanbhag.d.ts.map +1 -0
  245. package/lib/operations/thresholds/shanbhag.js +77 -0
  246. package/lib/operations/thresholds/shanbhag.js.map +1 -0
  247. package/lib/operations/thresholds/triangle.d.ts +8 -0
  248. package/lib/operations/thresholds/triangle.d.ts.map +1 -0
  249. package/lib/operations/thresholds/triangle.js +113 -0
  250. package/lib/operations/thresholds/triangle.js.map +1 -0
  251. package/lib/operations/thresholds/yen.d.ts +9 -0
  252. package/lib/operations/thresholds/yen.d.ts.map +1 -0
  253. package/lib/operations/thresholds/yen.js +62 -0
  254. package/lib/operations/thresholds/yen.js.map +1 -0
  255. package/lib/roi/RoiManager.d.ts +32 -0
  256. package/lib/roi/RoiManager.d.ts.map +1 -0
  257. package/lib/roi/RoiManager.js +10 -0
  258. package/lib/roi/RoiManager.js.map +1 -0
  259. package/lib/roi/RoiMapManager.d.ts +33 -0
  260. package/lib/roi/RoiMapManager.d.ts.map +1 -0
  261. package/lib/roi/RoiMapManager.js +17 -0
  262. package/lib/roi/RoiMapManager.js.map +1 -0
  263. package/lib/roi/colorRois.d.ts +39 -0
  264. package/lib/roi/colorRois.d.ts.map +1 -0
  265. package/lib/roi/colorRois.js +48 -0
  266. package/lib/roi/colorRois.js.map +1 -0
  267. package/lib/roi/fromMask.d.ts +19 -0
  268. package/lib/roi/fromMask.d.ts.map +1 -0
  269. package/lib/roi/fromMask.js +148 -0
  270. package/lib/roi/fromMask.js.map +1 -0
  271. package/lib/roi/index.d.ts +5 -0
  272. package/lib/roi/index.d.ts.map +1 -0
  273. package/lib/roi/index.js +21 -0
  274. package/lib/roi/index.js.map +1 -0
  275. package/lib/roi/utils/colorMaps/getBinaryMap.d.ts +37 -0
  276. package/lib/roi/utils/colorMaps/getBinaryMap.d.ts.map +1 -0
  277. package/lib/roi/utils/colorMaps/getBinaryMap.js +34 -0
  278. package/lib/roi/utils/colorMaps/getBinaryMap.js.map +1 -0
  279. package/lib/roi/utils/colorMaps/getRainbowMap.d.ts +25 -0
  280. package/lib/roi/utils/colorMaps/getRainbowMap.d.ts.map +1 -0
  281. package/lib/roi/utils/colorMaps/getRainbowMap.js +51 -0
  282. package/lib/roi/utils/colorMaps/getRainbowMap.js.map +1 -0
  283. package/lib/roi/utils/colorMaps/getSaturationMap.d.ts +42 -0
  284. package/lib/roi/utils/colorMaps/getSaturationMap.d.ts.map +1 -0
  285. package/lib/roi/utils/colorMaps/getSaturationMap.js +39 -0
  286. package/lib/roi/utils/colorMaps/getSaturationMap.js.map +1 -0
  287. package/lib/roi/utils/constants.d.ts +4 -0
  288. package/lib/roi/utils/constants.d.ts.map +1 -0
  289. package/lib/roi/utils/constants.js +7 -0
  290. package/lib/roi/utils/constants.js.map +1 -0
  291. package/lib/roi/utils/getColorMap.d.ts +32 -0
  292. package/lib/roi/utils/getColorMap.d.ts.map +1 -0
  293. package/lib/roi/utils/getColorMap.js +28 -0
  294. package/lib/roi/utils/getColorMap.js.map +1 -0
  295. package/lib/roi/utils/hsvToRgb.d.ts +21 -0
  296. package/lib/roi/utils/hsvToRgb.d.ts.map +1 -0
  297. package/lib/roi/utils/hsvToRgb.js +58 -0
  298. package/lib/roi/utils/hsvToRgb.js.map +1 -0
  299. package/lib/roi/utils/rgbToNumber.d.ts +8 -0
  300. package/lib/roi/utils/rgbToNumber.d.ts.map +1 -0
  301. package/lib/roi/utils/rgbToNumber.js +14 -0
  302. package/lib/roi/utils/rgbToNumber.js.map +1 -0
  303. package/lib/save/encode.d.ts +38 -0
  304. package/lib/save/encode.d.ts.map +1 -0
  305. package/lib/save/encode.js +33 -0
  306. package/lib/save/encode.js.map +1 -0
  307. package/lib/save/encodeJpeg.d.ts +18 -0
  308. package/lib/save/encodeJpeg.d.ts.map +1 -0
  309. package/lib/save/encodeJpeg.js +26 -0
  310. package/lib/save/encodeJpeg.js.map +1 -0
  311. package/lib/save/encodePng.d.ts +12 -0
  312. package/lib/save/encodePng.d.ts.map +1 -0
  313. package/lib/save/encodePng.js +16 -0
  314. package/lib/save/encodePng.js.map +1 -0
  315. package/lib/save/index.d.ts +6 -0
  316. package/lib/save/index.d.ts.map +1 -0
  317. package/lib/save/index.js +22 -0
  318. package/lib/save/index.js.map +1 -0
  319. package/lib/save/write.d.ts +27 -0
  320. package/lib/save/write.d.ts.map +1 -0
  321. package/lib/save/write.js +73 -0
  322. package/lib/save/write.js.map +1 -0
  323. package/lib/save/writeCanvas.d.ts +42 -0
  324. package/lib/save/writeCanvas.d.ts.map +1 -0
  325. package/lib/save/writeCanvas.js +29 -0
  326. package/lib/save/writeCanvas.js.map +1 -0
  327. package/lib/utils/boolToNumber.d.ts +9 -0
  328. package/lib/utils/boolToNumber.d.ts.map +1 -0
  329. package/lib/utils/boolToNumber.js +21 -0
  330. package/lib/utils/boolToNumber.js.map +1 -0
  331. package/lib/utils/borderIterator.d.ts +9 -0
  332. package/lib/utils/borderIterator.d.ts.map +1 -0
  333. package/lib/utils/borderIterator.js +25 -0
  334. package/lib/utils/borderIterator.js.map +1 -0
  335. package/lib/utils/checkKernel.d.ts +8 -0
  336. package/lib/utils/checkKernel.d.ts.map +1 -0
  337. package/lib/utils/checkKernel.js +16 -0
  338. package/lib/utils/checkKernel.js.map +1 -0
  339. package/lib/utils/checkProcessable.d.ts +18 -0
  340. package/lib/utils/checkProcessable.d.ts.map +1 -0
  341. package/lib/utils/checkProcessable.js +65 -0
  342. package/lib/utils/checkProcessable.js.map +1 -0
  343. package/lib/utils/clamp.d.ts +10 -0
  344. package/lib/utils/clamp.d.ts.map +1 -0
  345. package/lib/utils/clamp.js +38 -0
  346. package/lib/utils/clamp.js.map +1 -0
  347. package/lib/utils/colorModels.d.ts +15 -0
  348. package/lib/utils/colorModels.d.ts.map +1 -0
  349. package/lib/utils/colorModels.js +39 -0
  350. package/lib/utils/colorModels.js.map +1 -0
  351. package/lib/utils/copyData.d.ts +4 -0
  352. package/lib/utils/copyData.d.ts.map +1 -0
  353. package/lib/utils/copyData.js +20 -0
  354. package/lib/utils/copyData.js.map +1 -0
  355. package/lib/utils/getIndex.d.ts +12 -0
  356. package/lib/utils/getIndex.d.ts.map +1 -0
  357. package/lib/utils/getIndex.js +17 -0
  358. package/lib/utils/getIndex.js.map +1 -0
  359. package/lib/utils/getOutputImage.d.ts +61 -0
  360. package/lib/utils/getOutputImage.d.ts.map +1 -0
  361. package/lib/utils/getOutputImage.js +150 -0
  362. package/lib/utils/getOutputImage.js.map +1 -0
  363. package/lib/utils/interpolateBorder.d.ts +44 -0
  364. package/lib/utils/interpolateBorder.d.ts.map +1 -0
  365. package/lib/utils/interpolateBorder.js +143 -0
  366. package/lib/utils/interpolateBorder.js.map +1 -0
  367. package/lib/utils/interpolatePixel.d.ts +18 -0
  368. package/lib/utils/interpolatePixel.d.ts.map +1 -0
  369. package/lib/utils/interpolatePixel.js +122 -0
  370. package/lib/utils/interpolatePixel.js.map +1 -0
  371. package/lib/utils/kernels.d.ts +13 -0
  372. package/lib/utils/kernels.d.ts.map +1 -0
  373. package/lib/utils/kernels.js +66 -0
  374. package/lib/utils/kernels.js.map +1 -0
  375. package/lib/utils/kinds.d.ts +9 -0
  376. package/lib/utils/kinds.d.ts.map +1 -0
  377. package/lib/utils/kinds.js +23 -0
  378. package/lib/utils/kinds.js.map +1 -0
  379. package/lib/utils/round.d.ts +2 -0
  380. package/lib/utils/round.d.ts.map +1 -0
  381. package/lib/utils/round.js +11 -0
  382. package/lib/utils/round.js.map +1 -0
  383. package/lib/utils/validators.d.ts +23 -0
  384. package/lib/utils/validators.d.ts.map +1 -0
  385. package/lib/utils/validators.js +40 -0
  386. package/lib/utils/validators.js.map +1 -0
  387. package/lib-esm/IJS.d.ts +316 -0
  388. package/lib-esm/IJS.d.ts.map +1 -0
  389. package/lib-esm/IJS.js +526 -0
  390. package/lib-esm/IJS.js.map +1 -0
  391. package/lib-esm/Mask.d.ts +257 -0
  392. package/lib-esm/Mask.d.ts.map +1 -0
  393. package/lib-esm/Mask.js +334 -0
  394. package/lib-esm/Mask.js.map +1 -0
  395. package/lib-esm/compute/histogram.d.ts +20 -0
  396. package/lib-esm/compute/histogram.d.ts.map +1 -0
  397. package/lib-esm/compute/histogram.js +24 -0
  398. package/lib-esm/compute/histogram.js.map +1 -0
  399. package/lib-esm/compute/index.d.ts +2 -0
  400. package/lib-esm/compute/index.d.ts.map +1 -0
  401. package/lib-esm/compute/index.js +2 -0
  402. package/lib-esm/compute/index.js.map +1 -0
  403. package/lib-esm/filters/and.d.ts +17 -0
  404. package/lib-esm/filters/and.d.ts.map +1 -0
  405. package/lib-esm/filters/and.js +25 -0
  406. package/lib-esm/filters/and.js.map +1 -0
  407. package/lib-esm/filters/blur.d.ts +37 -0
  408. package/lib-esm/filters/blur.d.ts.map +1 -0
  409. package/lib-esm/filters/blur.js +18 -0
  410. package/lib-esm/filters/blur.js.map +1 -0
  411. package/lib-esm/filters/convolution.d.ts +79 -0
  412. package/lib-esm/filters/convolution.d.ts.map +1 -0
  413. package/lib-esm/filters/convolution.js +189 -0
  414. package/lib-esm/filters/convolution.js.map +1 -0
  415. package/lib-esm/filters/derivativeFilter.d.ts +40 -0
  416. package/lib-esm/filters/derivativeFilter.d.ts.map +1 -0
  417. package/lib-esm/filters/derivativeFilter.js +38 -0
  418. package/lib-esm/filters/derivativeFilter.js.map +1 -0
  419. package/lib-esm/filters/gaussianBlur.d.ts +59 -0
  420. package/lib-esm/filters/gaussianBlur.d.ts.map +1 -0
  421. package/lib-esm/filters/gaussianBlur.js +55 -0
  422. package/lib-esm/filters/gaussianBlur.js.map +1 -0
  423. package/lib-esm/filters/gradientFilter.d.ts +54 -0
  424. package/lib-esm/filters/gradientFilter.d.ts.map +1 -0
  425. package/lib-esm/filters/gradientFilter.js +51 -0
  426. package/lib-esm/filters/gradientFilter.js.map +1 -0
  427. package/lib-esm/filters/hypotenuse.d.ts +23 -0
  428. package/lib-esm/filters/hypotenuse.d.ts.map +1 -0
  429. package/lib-esm/filters/hypotenuse.js +39 -0
  430. package/lib-esm/filters/hypotenuse.js.map +1 -0
  431. package/lib-esm/filters/index.d.ts +11 -0
  432. package/lib-esm/filters/index.d.ts.map +1 -0
  433. package/lib-esm/filters/index.js +11 -0
  434. package/lib-esm/filters/index.js.map +1 -0
  435. package/lib-esm/filters/invert.d.ts +11 -0
  436. package/lib-esm/filters/invert.d.ts.map +1 -0
  437. package/lib-esm/filters/invert.js +33 -0
  438. package/lib-esm/filters/invert.js.map +1 -0
  439. package/lib-esm/filters/or.d.ts +17 -0
  440. package/lib-esm/filters/or.d.ts.map +1 -0
  441. package/lib-esm/filters/or.js +25 -0
  442. package/lib-esm/filters/or.js.map +1 -0
  443. package/lib-esm/filters/subtractImage.d.ts +13 -0
  444. package/lib-esm/filters/subtractImage.d.ts.map +1 -0
  445. package/lib-esm/filters/subtractImage.js +57 -0
  446. package/lib-esm/filters/subtractImage.js.map +1 -0
  447. package/lib-esm/geometry/index.d.ts +4 -0
  448. package/lib-esm/geometry/index.d.ts.map +1 -0
  449. package/lib-esm/geometry/index.js +4 -0
  450. package/lib-esm/geometry/index.js.map +1 -0
  451. package/lib-esm/geometry/resize.d.ts +52 -0
  452. package/lib-esm/geometry/resize.d.ts.map +1 -0
  453. package/lib-esm/geometry/resize.js +103 -0
  454. package/lib-esm/geometry/resize.js.map +1 -0
  455. package/lib-esm/geometry/rotate.d.ts +54 -0
  456. package/lib-esm/geometry/rotate.d.ts.map +1 -0
  457. package/lib-esm/geometry/rotate.js +40 -0
  458. package/lib-esm/geometry/rotate.js.map +1 -0
  459. package/lib-esm/geometry/transform.d.ts +46 -0
  460. package/lib-esm/geometry/transform.d.ts.map +1 -0
  461. package/lib-esm/geometry/transform.js +91 -0
  462. package/lib-esm/geometry/transform.js.map +1 -0
  463. package/lib-esm/index.d.ts +10 -0
  464. package/lib-esm/index.d.ts.map +1 -0
  465. package/lib-esm/index.js +10 -0
  466. package/lib-esm/index.js.map +1 -0
  467. package/lib-esm/load/decode.d.ts +10 -0
  468. package/lib-esm/load/decode.d.ts.map +1 -0
  469. package/lib-esm/load/decode.js +26 -0
  470. package/lib-esm/load/decode.js.map +1 -0
  471. package/lib-esm/load/decodeJpeg.d.ts +9 -0
  472. package/lib-esm/load/decodeJpeg.d.ts.map +1 -0
  473. package/lib-esm/load/decodeJpeg.js +16 -0
  474. package/lib-esm/load/decodeJpeg.js.map +1 -0
  475. package/lib-esm/load/decodePng.d.ts +9 -0
  476. package/lib-esm/load/decodePng.d.ts.map +1 -0
  477. package/lib-esm/load/decodePng.js +68 -0
  478. package/lib-esm/load/decodePng.js.map +1 -0
  479. package/lib-esm/load/decodeTiff.d.ts +9 -0
  480. package/lib-esm/load/decodeTiff.d.ts.map +1 -0
  481. package/lib-esm/load/decodeTiff.js +60 -0
  482. package/lib-esm/load/decodeTiff.js.map +1 -0
  483. package/lib-esm/load/index.d.ts +8 -0
  484. package/lib-esm/load/index.d.ts.map +1 -0
  485. package/lib-esm/load/index.js +8 -0
  486. package/lib-esm/load/index.js.map +1 -0
  487. package/lib-esm/load/read.d.ts +17 -0
  488. package/lib-esm/load/read.d.ts.map +1 -0
  489. package/lib-esm/load/read.js +23 -0
  490. package/lib-esm/load/read.js.map +1 -0
  491. package/lib-esm/load/readCanvas.d.ts +3 -0
  492. package/lib-esm/load/readCanvas.d.ts.map +1 -0
  493. package/lib-esm/load/readCanvas.js +13 -0
  494. package/lib-esm/load/readCanvas.js.map +1 -0
  495. package/lib-esm/load/readImg.d.ts +3 -0
  496. package/lib-esm/load/readImg.d.ts.map +1 -0
  497. package/lib-esm/load/readImg.js +13 -0
  498. package/lib-esm/load/readImg.js.map +1 -0
  499. package/lib-esm/morphology/bottomHat.d.ts +19 -0
  500. package/lib-esm/morphology/bottomHat.d.ts.map +1 -0
  501. package/lib-esm/morphology/bottomHat.js +39 -0
  502. package/lib-esm/morphology/bottomHat.js.map +1 -0
  503. package/lib-esm/morphology/cannyEdgeDetector.d.ts +49 -0
  504. package/lib-esm/morphology/cannyEdgeDetector.d.ts.map +1 -0
  505. package/lib-esm/morphology/cannyEdgeDetector.js +149 -0
  506. package/lib-esm/morphology/cannyEdgeDetector.js.map +1 -0
  507. package/lib-esm/morphology/clearBorder.d.ts +22 -0
  508. package/lib-esm/morphology/clearBorder.d.ts.map +1 -0
  509. package/lib-esm/morphology/clearBorder.js +85 -0
  510. package/lib-esm/morphology/clearBorder.js.map +1 -0
  511. package/lib-esm/morphology/close.d.ts +19 -0
  512. package/lib-esm/morphology/close.d.ts.map +1 -0
  513. package/lib-esm/morphology/close.js +34 -0
  514. package/lib-esm/morphology/close.js.map +1 -0
  515. package/lib-esm/morphology/dilate.d.ts +20 -0
  516. package/lib-esm/morphology/dilate.d.ts.map +1 -0
  517. package/lib-esm/morphology/dilate.js +192 -0
  518. package/lib-esm/morphology/dilate.js.map +1 -0
  519. package/lib-esm/morphology/erode.d.ts +20 -0
  520. package/lib-esm/morphology/erode.d.ts.map +1 -0
  521. package/lib-esm/morphology/erode.js +192 -0
  522. package/lib-esm/morphology/erode.js.map +1 -0
  523. package/lib-esm/morphology/floodFill.d.ts +22 -0
  524. package/lib-esm/morphology/floodFill.d.ts.map +1 -0
  525. package/lib-esm/morphology/floodFill.js +16 -0
  526. package/lib-esm/morphology/floodFill.js.map +1 -0
  527. package/lib-esm/morphology/index.d.ts +11 -0
  528. package/lib-esm/morphology/index.d.ts.map +1 -0
  529. package/lib-esm/morphology/index.js +11 -0
  530. package/lib-esm/morphology/index.js.map +1 -0
  531. package/lib-esm/morphology/morphologicalGradient.d.ts +19 -0
  532. package/lib-esm/morphology/morphologicalGradient.d.ts.map +1 -0
  533. package/lib-esm/morphology/morphologicalGradient.js +36 -0
  534. package/lib-esm/morphology/morphologicalGradient.js.map +1 -0
  535. package/lib-esm/morphology/open.d.ts +19 -0
  536. package/lib-esm/morphology/open.d.ts.map +1 -0
  537. package/lib-esm/morphology/open.js +36 -0
  538. package/lib-esm/morphology/open.js.map +1 -0
  539. package/lib-esm/morphology/topHat.d.ts +19 -0
  540. package/lib-esm/morphology/topHat.d.ts.map +1 -0
  541. package/lib-esm/morphology/topHat.js +37 -0
  542. package/lib-esm/morphology/topHat.js.map +1 -0
  543. package/lib-esm/operations/convertColor.d.ts +32 -0
  544. package/lib-esm/operations/convertColor.d.ts.map +1 -0
  545. package/lib-esm/operations/convertColor.js +142 -0
  546. package/lib-esm/operations/convertColor.js.map +1 -0
  547. package/lib-esm/operations/convertDepth.d.ts +10 -0
  548. package/lib-esm/operations/convertDepth.d.ts.map +1 -0
  549. package/lib-esm/operations/convertDepth.js +56 -0
  550. package/lib-esm/operations/convertDepth.js.map +1 -0
  551. package/lib-esm/operations/copyTo.d.ts +29 -0
  552. package/lib-esm/operations/copyTo.d.ts.map +1 -0
  553. package/lib-esm/operations/copyTo.js +48 -0
  554. package/lib-esm/operations/copyTo.js.map +1 -0
  555. package/lib-esm/operations/grey.d.ts +50 -0
  556. package/lib-esm/operations/grey.d.ts.map +1 -0
  557. package/lib-esm/operations/grey.js +60 -0
  558. package/lib-esm/operations/grey.js.map +1 -0
  559. package/lib-esm/operations/greyAlgorithms.d.ts +149 -0
  560. package/lib-esm/operations/greyAlgorithms.d.ts.map +1 -0
  561. package/lib-esm/operations/greyAlgorithms.js +223 -0
  562. package/lib-esm/operations/greyAlgorithms.js.map +1 -0
  563. package/lib-esm/operations/index.d.ts +8 -0
  564. package/lib-esm/operations/index.d.ts.map +1 -0
  565. package/lib-esm/operations/index.js +8 -0
  566. package/lib-esm/operations/index.js.map +1 -0
  567. package/lib-esm/operations/merge.d.ts +9 -0
  568. package/lib-esm/operations/merge.d.ts.map +1 -0
  569. package/lib-esm/operations/merge.js +47 -0
  570. package/lib-esm/operations/merge.js.map +1 -0
  571. package/lib-esm/operations/split.d.ts +9 -0
  572. package/lib-esm/operations/split.d.ts.map +1 -0
  573. package/lib-esm/operations/split.js +19 -0
  574. package/lib-esm/operations/split.js.map +1 -0
  575. package/lib-esm/operations/threshold.d.ts +58 -0
  576. package/lib-esm/operations/threshold.d.ts.map +1 -0
  577. package/lib-esm/operations/threshold.js +106 -0
  578. package/lib-esm/operations/threshold.js.map +1 -0
  579. package/lib-esm/operations/thresholds/huang.d.ts +8 -0
  580. package/lib-esm/operations/thresholds/huang.d.ts.map +1 -0
  581. package/lib-esm/operations/thresholds/huang.js +78 -0
  582. package/lib-esm/operations/thresholds/huang.js.map +1 -0
  583. package/lib-esm/operations/thresholds/intermodes.d.ts +8 -0
  584. package/lib-esm/operations/thresholds/intermodes.d.ts.map +1 -0
  585. package/lib-esm/operations/thresholds/intermodes.js +59 -0
  586. package/lib-esm/operations/thresholds/intermodes.js.map +1 -0
  587. package/lib-esm/operations/thresholds/isodata.d.ts +8 -0
  588. package/lib-esm/operations/thresholds/isodata.d.ts.map +1 -0
  589. package/lib-esm/operations/thresholds/isodata.js +52 -0
  590. package/lib-esm/operations/thresholds/isodata.js.map +1 -0
  591. package/lib-esm/operations/thresholds/li.d.ts +9 -0
  592. package/lib-esm/operations/thresholds/li.d.ts.map +1 -0
  593. package/lib-esm/operations/thresholds/li.js +74 -0
  594. package/lib-esm/operations/thresholds/li.js.map +1 -0
  595. package/lib-esm/operations/thresholds/maxEntropy.d.ts +9 -0
  596. package/lib-esm/operations/thresholds/maxEntropy.d.ts.map +1 -0
  597. package/lib-esm/operations/thresholds/maxEntropy.js +77 -0
  598. package/lib-esm/operations/thresholds/maxEntropy.js.map +1 -0
  599. package/lib-esm/operations/thresholds/mean.d.ts +9 -0
  600. package/lib-esm/operations/thresholds/mean.d.ts.map +1 -0
  601. package/lib-esm/operations/thresholds/mean.js +23 -0
  602. package/lib-esm/operations/thresholds/mean.js.map +1 -0
  603. package/lib-esm/operations/thresholds/minError.d.ts +9 -0
  604. package/lib-esm/operations/thresholds/minError.d.ts.map +1 -0
  605. package/lib-esm/operations/thresholds/minError.js +87 -0
  606. package/lib-esm/operations/thresholds/minError.js.map +1 -0
  607. package/lib-esm/operations/thresholds/minimum.d.ts +8 -0
  608. package/lib-esm/operations/thresholds/minimum.d.ts.map +1 -0
  609. package/lib-esm/operations/thresholds/minimum.js +75 -0
  610. package/lib-esm/operations/thresholds/minimum.js.map +1 -0
  611. package/lib-esm/operations/thresholds/moments.d.ts +9 -0
  612. package/lib-esm/operations/thresholds/moments.d.ts.map +1 -0
  613. package/lib-esm/operations/thresholds/moments.js +59 -0
  614. package/lib-esm/operations/thresholds/moments.js.map +1 -0
  615. package/lib-esm/operations/thresholds/otsu.d.ts +9 -0
  616. package/lib-esm/operations/thresholds/otsu.d.ts.map +1 -0
  617. package/lib-esm/operations/thresholds/otsu.js +39 -0
  618. package/lib-esm/operations/thresholds/otsu.js.map +1 -0
  619. package/lib-esm/operations/thresholds/percentile.d.ts +8 -0
  620. package/lib-esm/operations/thresholds/percentile.d.ts.map +1 -0
  621. package/lib-esm/operations/thresholds/percentile.js +36 -0
  622. package/lib-esm/operations/thresholds/percentile.js.map +1 -0
  623. package/lib-esm/operations/thresholds/renyiEntropy.d.ts +9 -0
  624. package/lib-esm/operations/thresholds/renyiEntropy.d.ts.map +1 -0
  625. package/lib-esm/operations/thresholds/renyiEntropy.js +130 -0
  626. package/lib-esm/operations/thresholds/renyiEntropy.js.map +1 -0
  627. package/lib-esm/operations/thresholds/shanbhag.d.ts +10 -0
  628. package/lib-esm/operations/thresholds/shanbhag.d.ts.map +1 -0
  629. package/lib-esm/operations/thresholds/shanbhag.js +74 -0
  630. package/lib-esm/operations/thresholds/shanbhag.js.map +1 -0
  631. package/lib-esm/operations/thresholds/triangle.d.ts +8 -0
  632. package/lib-esm/operations/thresholds/triangle.d.ts.map +1 -0
  633. package/lib-esm/operations/thresholds/triangle.js +109 -0
  634. package/lib-esm/operations/thresholds/triangle.js.map +1 -0
  635. package/lib-esm/operations/thresholds/yen.d.ts +9 -0
  636. package/lib-esm/operations/thresholds/yen.d.ts.map +1 -0
  637. package/lib-esm/operations/thresholds/yen.js +59 -0
  638. package/lib-esm/operations/thresholds/yen.js.map +1 -0
  639. package/lib-esm/roi/RoiManager.d.ts +32 -0
  640. package/lib-esm/roi/RoiManager.d.ts.map +1 -0
  641. package/lib-esm/roi/RoiManager.js +7 -0
  642. package/lib-esm/roi/RoiManager.js.map +1 -0
  643. package/lib-esm/roi/RoiMapManager.d.ts +33 -0
  644. package/lib-esm/roi/RoiMapManager.d.ts.map +1 -0
  645. package/lib-esm/roi/RoiMapManager.js +13 -0
  646. package/lib-esm/roi/RoiMapManager.js.map +1 -0
  647. package/lib-esm/roi/colorRois.d.ts +39 -0
  648. package/lib-esm/roi/colorRois.d.ts.map +1 -0
  649. package/lib-esm/roi/colorRois.js +44 -0
  650. package/lib-esm/roi/colorRois.js.map +1 -0
  651. package/lib-esm/roi/fromMask.d.ts +19 -0
  652. package/lib-esm/roi/fromMask.d.ts.map +1 -0
  653. package/lib-esm/roi/fromMask.js +144 -0
  654. package/lib-esm/roi/fromMask.js.map +1 -0
  655. package/lib-esm/roi/index.d.ts +5 -0
  656. package/lib-esm/roi/index.d.ts.map +1 -0
  657. package/lib-esm/roi/index.js +5 -0
  658. package/lib-esm/roi/index.js.map +1 -0
  659. package/lib-esm/roi/utils/colorMaps/getBinaryMap.d.ts +37 -0
  660. package/lib-esm/roi/utils/colorMaps/getBinaryMap.d.ts.map +1 -0
  661. package/lib-esm/roi/utils/colorMaps/getBinaryMap.js +30 -0
  662. package/lib-esm/roi/utils/colorMaps/getBinaryMap.js.map +1 -0
  663. package/lib-esm/roi/utils/colorMaps/getRainbowMap.d.ts +25 -0
  664. package/lib-esm/roi/utils/colorMaps/getRainbowMap.d.ts.map +1 -0
  665. package/lib-esm/roi/utils/colorMaps/getRainbowMap.js +47 -0
  666. package/lib-esm/roi/utils/colorMaps/getRainbowMap.js.map +1 -0
  667. package/lib-esm/roi/utils/colorMaps/getSaturationMap.d.ts +42 -0
  668. package/lib-esm/roi/utils/colorMaps/getSaturationMap.d.ts.map +1 -0
  669. package/lib-esm/roi/utils/colorMaps/getSaturationMap.js +35 -0
  670. package/lib-esm/roi/utils/colorMaps/getSaturationMap.js.map +1 -0
  671. package/lib-esm/roi/utils/constants.d.ts +4 -0
  672. package/lib-esm/roi/utils/constants.d.ts.map +1 -0
  673. package/lib-esm/roi/utils/constants.js +4 -0
  674. package/lib-esm/roi/utils/constants.js.map +1 -0
  675. package/lib-esm/roi/utils/getColorMap.d.ts +32 -0
  676. package/lib-esm/roi/utils/getColorMap.d.ts.map +1 -0
  677. package/lib-esm/roi/utils/getColorMap.js +24 -0
  678. package/lib-esm/roi/utils/getColorMap.js.map +1 -0
  679. package/lib-esm/roi/utils/hsvToRgb.d.ts +21 -0
  680. package/lib-esm/roi/utils/hsvToRgb.d.ts.map +1 -0
  681. package/lib-esm/roi/utils/hsvToRgb.js +54 -0
  682. package/lib-esm/roi/utils/hsvToRgb.js.map +1 -0
  683. package/lib-esm/roi/utils/rgbToNumber.d.ts +8 -0
  684. package/lib-esm/roi/utils/rgbToNumber.d.ts.map +1 -0
  685. package/lib-esm/roi/utils/rgbToNumber.js +10 -0
  686. package/lib-esm/roi/utils/rgbToNumber.js.map +1 -0
  687. package/lib-esm/save/encode.d.ts +38 -0
  688. package/lib-esm/save/encode.d.ts.map +1 -0
  689. package/lib-esm/save/encode.js +29 -0
  690. package/lib-esm/save/encode.js.map +1 -0
  691. package/lib-esm/save/encodeJpeg.d.ts +18 -0
  692. package/lib-esm/save/encodeJpeg.d.ts.map +1 -0
  693. package/lib-esm/save/encodeJpeg.js +22 -0
  694. package/lib-esm/save/encodeJpeg.js.map +1 -0
  695. package/lib-esm/save/encodePng.d.ts +12 -0
  696. package/lib-esm/save/encodePng.d.ts.map +1 -0
  697. package/lib-esm/save/encodePng.js +12 -0
  698. package/lib-esm/save/encodePng.js.map +1 -0
  699. package/lib-esm/save/index.d.ts +6 -0
  700. package/lib-esm/save/index.d.ts.map +1 -0
  701. package/lib-esm/save/index.js +6 -0
  702. package/lib-esm/save/index.js.map +1 -0
  703. package/lib-esm/save/write.d.ts +27 -0
  704. package/lib-esm/save/write.d.ts.map +1 -0
  705. package/lib-esm/save/write.js +65 -0
  706. package/lib-esm/save/write.js.map +1 -0
  707. package/lib-esm/save/writeCanvas.d.ts +42 -0
  708. package/lib-esm/save/writeCanvas.d.ts.map +1 -0
  709. package/lib-esm/save/writeCanvas.js +25 -0
  710. package/lib-esm/save/writeCanvas.js.map +1 -0
  711. package/lib-esm/utils/boolToNumber.d.ts +9 -0
  712. package/lib-esm/utils/boolToNumber.d.ts.map +1 -0
  713. package/lib-esm/utils/boolToNumber.js +17 -0
  714. package/lib-esm/utils/boolToNumber.js.map +1 -0
  715. package/lib-esm/utils/borderIterator.d.ts +9 -0
  716. package/lib-esm/utils/borderIterator.d.ts.map +1 -0
  717. package/lib-esm/utils/borderIterator.js +21 -0
  718. package/lib-esm/utils/borderIterator.js.map +1 -0
  719. package/lib-esm/utils/checkKernel.d.ts +8 -0
  720. package/lib-esm/utils/checkKernel.d.ts.map +1 -0
  721. package/lib-esm/utils/checkKernel.js +12 -0
  722. package/lib-esm/utils/checkKernel.js.map +1 -0
  723. package/lib-esm/utils/checkProcessable.d.ts +18 -0
  724. package/lib-esm/utils/checkProcessable.d.ts.map +1 -0
  725. package/lib-esm/utils/checkProcessable.js +62 -0
  726. package/lib-esm/utils/checkProcessable.js.map +1 -0
  727. package/lib-esm/utils/clamp.d.ts +10 -0
  728. package/lib-esm/utils/clamp.d.ts.map +1 -0
  729. package/lib-esm/utils/clamp.js +34 -0
  730. package/lib-esm/utils/clamp.js.map +1 -0
  731. package/lib-esm/utils/colorModels.d.ts +15 -0
  732. package/lib-esm/utils/colorModels.d.ts.map +1 -0
  733. package/lib-esm/utils/colorModels.js +36 -0
  734. package/lib-esm/utils/colorModels.js.map +1 -0
  735. package/lib-esm/utils/copyData.d.ts +4 -0
  736. package/lib-esm/utils/copyData.d.ts.map +1 -0
  737. package/lib-esm/utils/copyData.js +16 -0
  738. package/lib-esm/utils/copyData.js.map +1 -0
  739. package/lib-esm/utils/getIndex.d.ts +12 -0
  740. package/lib-esm/utils/getIndex.d.ts.map +1 -0
  741. package/lib-esm/utils/getIndex.js +13 -0
  742. package/lib-esm/utils/getIndex.js.map +1 -0
  743. package/lib-esm/utils/getOutputImage.d.ts +61 -0
  744. package/lib-esm/utils/getOutputImage.d.ts.map +1 -0
  745. package/lib-esm/utils/getOutputImage.js +143 -0
  746. package/lib-esm/utils/getOutputImage.js.map +1 -0
  747. package/lib-esm/utils/interpolateBorder.d.ts +44 -0
  748. package/lib-esm/utils/interpolateBorder.d.ts.map +1 -0
  749. package/lib-esm/utils/interpolateBorder.js +134 -0
  750. package/lib-esm/utils/interpolateBorder.js.map +1 -0
  751. package/lib-esm/utils/interpolatePixel.d.ts +18 -0
  752. package/lib-esm/utils/interpolatePixel.d.ts.map +1 -0
  753. package/lib-esm/utils/interpolatePixel.js +118 -0
  754. package/lib-esm/utils/interpolatePixel.js.map +1 -0
  755. package/lib-esm/utils/kernels.d.ts +13 -0
  756. package/lib-esm/utils/kernels.d.ts.map +1 -0
  757. package/lib-esm/utils/kernels.js +63 -0
  758. package/lib-esm/utils/kernels.js.map +1 -0
  759. package/lib-esm/utils/kinds.d.ts +9 -0
  760. package/lib-esm/utils/kinds.d.ts.map +1 -0
  761. package/lib-esm/utils/kinds.js +20 -0
  762. package/lib-esm/utils/kinds.js.map +1 -0
  763. package/lib-esm/utils/round.d.ts +2 -0
  764. package/lib-esm/utils/round.d.ts.map +1 -0
  765. package/lib-esm/utils/round.js +7 -0
  766. package/lib-esm/utils/round.js.map +1 -0
  767. package/lib-esm/utils/validators.d.ts +23 -0
  768. package/lib-esm/utils/validators.d.ts.map +1 -0
  769. package/lib-esm/utils/validators.js +34 -0
  770. package/lib-esm/utils/validators.js.map +1 -0
  771. package/package.json +79 -0
  772. package/src/IJS.ts +758 -0
  773. package/src/Mask.ts +476 -0
  774. package/src/compute/histogram.ts +39 -0
  775. package/src/compute/index.ts +1 -0
  776. package/src/filters/and.ts +34 -0
  777. package/src/filters/blur.ts +49 -0
  778. package/src/filters/convolution.ts +357 -0
  779. package/src/filters/derivativeFilter.ts +77 -0
  780. package/src/filters/gaussianBlur.ts +124 -0
  781. package/src/filters/gradientFilter.ts +106 -0
  782. package/src/filters/hypotenuse.ts +74 -0
  783. package/src/filters/index.ts +10 -0
  784. package/src/filters/invert.ts +47 -0
  785. package/src/filters/or.ts +34 -0
  786. package/src/filters/subtractImage.ts +91 -0
  787. package/src/geometry/index.ts +3 -0
  788. package/src/geometry/resize.ts +182 -0
  789. package/src/geometry/rotate.ts +99 -0
  790. package/src/geometry/transform.ts +169 -0
  791. package/src/index.ts +9 -0
  792. package/src/load/decode.ts +33 -0
  793. package/src/load/decodeJpeg.ts +17 -0
  794. package/src/load/decodePng.ts +78 -0
  795. package/src/load/decodeTiff.ts +64 -0
  796. package/src/load/index.ts +7 -0
  797. package/src/load/read.ts +27 -0
  798. package/src/load/readCanvas.ts +17 -0
  799. package/src/load/readImg.ts +15 -0
  800. package/src/morphology/bottomHat.ts +66 -0
  801. package/src/morphology/cannyEdgeDetector.ts +214 -0
  802. package/src/morphology/clearBorder.ts +116 -0
  803. package/src/morphology/close.ts +61 -0
  804. package/src/morphology/dilate.ts +264 -0
  805. package/src/morphology/erode.ts +264 -0
  806. package/src/morphology/floodFill.ts +31 -0
  807. package/src/morphology/index.ts +10 -0
  808. package/src/morphology/morphologicalGradient.ts +69 -0
  809. package/src/morphology/open.ts +61 -0
  810. package/src/morphology/topHat.ts +64 -0
  811. package/src/operations/convertColor.ts +185 -0
  812. package/src/operations/convertDepth.ts +59 -0
  813. package/src/operations/copyTo.ts +107 -0
  814. package/src/operations/grey.ts +114 -0
  815. package/src/operations/greyAlgorithms.ts +265 -0
  816. package/src/operations/index.ts +7 -0
  817. package/src/operations/merge.ts +52 -0
  818. package/src/operations/split.ts +19 -0
  819. package/src/operations/threshold.ts +145 -0
  820. package/src/operations/thresholds/huang.ts +84 -0
  821. package/src/operations/thresholds/intermodes.ts +62 -0
  822. package/src/operations/thresholds/isodata.ts +53 -0
  823. package/src/operations/thresholds/li.ts +81 -0
  824. package/src/operations/thresholds/maxEntropy.ts +89 -0
  825. package/src/operations/thresholds/mean.ts +23 -0
  826. package/src/operations/thresholds/minError.ts +102 -0
  827. package/src/operations/thresholds/minimum.ts +78 -0
  828. package/src/operations/thresholds/moments.ts +60 -0
  829. package/src/operations/thresholds/otsu.ts +42 -0
  830. package/src/operations/thresholds/percentile.ts +40 -0
  831. package/src/operations/thresholds/renyiEntropy.ts +148 -0
  832. package/src/operations/thresholds/shanbhag.ts +82 -0
  833. package/src/operations/thresholds/triangle.ts +115 -0
  834. package/src/operations/thresholds/yen.ts +63 -0
  835. package/src/roi/RoiManager.ts +34 -0
  836. package/src/roi/RoiMapManager.ts +48 -0
  837. package/src/roi/colorRois.ts +69 -0
  838. package/src/roi/fromMask.ts +184 -0
  839. package/src/roi/index.ts +4 -0
  840. package/src/roi/utils/colorMaps/getBinaryMap.ts +72 -0
  841. package/src/roi/utils/colorMaps/getRainbowMap.ts +65 -0
  842. package/src/roi/utils/colorMaps/getSaturationMap.ts +80 -0
  843. package/src/roi/utils/constants.ts +3 -0
  844. package/src/roi/utils/getColorMap.ts +51 -0
  845. package/src/roi/utils/hsvToRgb.ts +62 -0
  846. package/src/roi/utils/rgbToNumber.ts +9 -0
  847. package/src/save/encode.ts +65 -0
  848. package/src/save/encodeJpeg.ts +37 -0
  849. package/src/save/encodePng.ts +16 -0
  850. package/src/save/index.ts +5 -0
  851. package/src/save/write.ts +109 -0
  852. package/src/save/writeCanvas.ts +82 -0
  853. package/src/utils/boolToNumber.ts +18 -0
  854. package/src/utils/borderIterator.ts +22 -0
  855. package/src/utils/checkKernel.ts +13 -0
  856. package/src/utils/checkProcessable.ts +98 -0
  857. package/src/utils/clamp.ts +39 -0
  858. package/src/utils/colorModels.ts +41 -0
  859. package/src/utils/copyData.ts +23 -0
  860. package/src/utils/getIndex.ts +19 -0
  861. package/src/utils/getOutputImage.ts +182 -0
  862. package/src/utils/interpolateBorder.ts +206 -0
  863. package/src/utils/interpolatePixel.ts +170 -0
  864. package/src/utils/kernels.ts +73 -0
  865. package/src/utils/kinds.ts +27 -0
  866. package/src/utils/round.ts +6 -0
  867. package/src/utils/validators.ts +43 -0
@@ -0,0 +1,223 @@
1
+ /**
2
+ * Converts R, G and B values to a single value using Luma 709 standard({@link https://en.wikipedia.org/wiki/Luma_(video)}).
3
+ *
4
+ * @param red - Red value of current pixel.
5
+ * @param green - Green value of current pixel.
6
+ * @param blue - Blue value of current pixel.
7
+ * @returns - Corresponding gray value.
8
+ */
9
+ export function luma709(red, green, blue) {
10
+ // sRGB
11
+ // return red * 0.2126 + green * 0.7152 + blue * 0.0722;
12
+ // Let's do a little trick ... in order not convert the integer to a double we do
13
+ // the multiplication with integer to reach a total of 32768 and then shift the bits
14
+ // of 15 to the right
15
+ // This does a Math.floor and may lead to small (max 1) difference
16
+ // Same result, > 10% faster on the full grey conversion
17
+ return (red * 6966 + green * 23436 + blue * 2366) >> 15;
18
+ }
19
+ /**
20
+ * Converts R, G and B values to a single value using Luma 601 standard({@link https://en.wikipedia.org/wiki/Luma_(video)}).
21
+ *
22
+ * @param red - Red value of current pixel.
23
+ * @param green - Green value of current pixel.
24
+ * @param blue - Blue value of current pixel.
25
+ * @returns - Corresponding gray value.
26
+ */
27
+ export function luma601(red, green, blue) {
28
+ // NTSC
29
+ // return this.red * 0.299 + green * 0.587 + blue * 0.114;
30
+ return (red * 9798 + green * 19235 + blue * 3735) >> 15;
31
+ }
32
+ /**
33
+ * Return the maximal value between red, green and blue.
34
+ *
35
+ * @param red - Red value of current pixel.
36
+ * @param green - Green value of current pixel.
37
+ * @param blue - Blue value of current pixel.
38
+ * @returns - Corresponding gray value.
39
+ */
40
+ export function max(red, green, blue) {
41
+ return Math.max(red, green, blue);
42
+ }
43
+ /**
44
+ * Return the minimal value between red, green and blue.
45
+ *
46
+ * @param red - Red value of current pixel.
47
+ * @param green - Green value of current pixel.
48
+ * @param blue - Blue value of current pixel.
49
+ * @returns - Corresponding gray value.
50
+ */
51
+ export function min(red, green, blue) {
52
+ return Math.min(red, green, blue);
53
+ }
54
+ /**
55
+ * Return the average of red, green and blue.
56
+ *
57
+ * @param red - Red value of current pixel.
58
+ * @param green - Green value of current pixel.
59
+ * @param blue - Blue value of current pixel.
60
+ * @returns - Corresponding gray value.
61
+ */
62
+ export function average(red, green, blue) {
63
+ return ((red + green + blue) / 3) >> 0;
64
+ }
65
+ /**
66
+ * Return the average between the max and min values of red, green and blue.
67
+ *
68
+ * @param red - Red value of current pixel.
69
+ * @param green - Green value of current pixel.
70
+ * @param blue - Blue value of current pixel.
71
+ * @returns - Corresponding gray value.
72
+ */
73
+ export function minmax(red, green, blue) {
74
+ return (Math.max(red, green, blue) + Math.min(red, green, blue)) / 2;
75
+ }
76
+ /**
77
+ * Return the red value.
78
+ *
79
+ * @param red - Red value of current pixel.
80
+ * @returns - Corresponding gray value.
81
+ */
82
+ export function red(red) {
83
+ return red;
84
+ }
85
+ /**
86
+ * Return the green value.
87
+ *
88
+ * @param red - Red value of current pixel.
89
+ * @param green - Green value of current pixel.
90
+ * @returns - Corresponding gray value.
91
+ */
92
+ export function green(red, green) {
93
+ return green;
94
+ }
95
+ /**
96
+ * Return the blue value.
97
+ *
98
+ * @param red - Red value of current pixel.
99
+ * @param green - Green value of current pixel.
100
+ * @param blue - Blue value of current pixel.
101
+ * @returns - Corresponding gray value.
102
+ */
103
+ export function blue(red, green, blue) {
104
+ return blue;
105
+ }
106
+ /**
107
+ * Return the minimum of the inverses of red, green and blue.
108
+ *
109
+ * @param red - Red value of current pixel.
110
+ * @param green - Green value of current pixel.
111
+ * @param blue - Blue value of current pixel.
112
+ * @param image - Image to convert to grey.
113
+ * @returns - Corresponding gray value.
114
+ */
115
+ export function black(red, green, blue, image) {
116
+ return Math.min(image.maxValue - red, image.maxValue - green, image.maxValue - blue);
117
+ }
118
+ /**
119
+ * Returns the cyan component of a pixel.
120
+ *
121
+ * @param red - Red value of current pixel.
122
+ * @param green - Green value of current pixel.
123
+ * @param blue - Blue value of current pixel.
124
+ * @param image - Image to convert to grey.
125
+ * @returns - Corresponding gray value.
126
+ */
127
+ export function cyan(red, green, blue, image) {
128
+ let blackColor = black(red, green, blue, image);
129
+ return (((image.maxValue - red - blackColor) / (1 - blackColor / image.maxValue)) >>
130
+ 0);
131
+ }
132
+ /**
133
+ * Returns the magenta component of a pixel.
134
+ *
135
+ * @param red - Red value of current pixel
136
+ * @param green - Green value of current pixel
137
+ * @param blue - Blue value of current pixel
138
+ * @param image - Image to convert to grey.
139
+ * @returns - Corresponding gray value.
140
+ */
141
+ export function magenta(red, green, blue, image) {
142
+ let blackColor = black(red, green, blue, image);
143
+ return (((image.maxValue - green - blackColor) /
144
+ (1 - blackColor / image.maxValue)) >>
145
+ 0);
146
+ }
147
+ /**
148
+ * Returns the yellow component of a pixel.
149
+ *
150
+ * @param red - Red value of current pixel
151
+ * @param green - Green value of current pixel
152
+ * @param blue - Blue value of current pixel
153
+ * @param image - Image to convert to grey.
154
+ * @returns - Corresponding gray value.
155
+ */
156
+ export function yellow(red, green, blue, image) {
157
+ let blackColor = black(red, green, blue, image);
158
+ return (((image.maxValue - blue - blackColor) /
159
+ (1 - blackColor / image.maxValue)) >>
160
+ 0);
161
+ }
162
+ /**
163
+ * Returns the hue of a pixel.
164
+ *
165
+ * @param red - Red value of current pixel
166
+ * @param green - Green value of current pixel
167
+ * @param blue - Blue value of current pixel
168
+ * @param image - Image to convert to grey.
169
+ * @returns - Corresponding gray value.
170
+ */
171
+ export function hue(red, green, blue, image) {
172
+ let minValue = min(red, green, blue);
173
+ let maxValue = max(red, green, blue);
174
+ if (maxValue === minValue) {
175
+ return 0;
176
+ }
177
+ let hue = 0;
178
+ let delta = maxValue - minValue;
179
+ switch (maxValue) {
180
+ case red:
181
+ hue = (green - blue) / delta + (green < blue ? 6 : 0);
182
+ break;
183
+ case green:
184
+ hue = (blue - red) / delta + 2;
185
+ break;
186
+ case blue:
187
+ hue = (red - green) / delta + 4;
188
+ break;
189
+ default:
190
+ throw new Error('unreachable');
191
+ }
192
+ return ((hue / 6) * image.maxValue) >> 0;
193
+ }
194
+ /**
195
+ * Returns the saturation component of a pixel.
196
+ *
197
+ * @param red - Red value of current pixel
198
+ * @param green - Green value of current pixel
199
+ * @param blue - Blue value of current pixel
200
+ * @param image - Image to convert to grey.
201
+ * @returns - Corresponding gray value.
202
+ */
203
+ export function saturation(red, green, blue, image) {
204
+ // from HSV model
205
+ let minValue = min(red, green, blue);
206
+ let maxValue = max(red, green, blue);
207
+ let delta = maxValue - minValue;
208
+ return maxValue === 0 ? 0 : (delta / maxValue) * image.maxValue;
209
+ }
210
+ /**
211
+ * Returns the lightness of a pixel.
212
+ *
213
+ * @param red - Red value of current pixel
214
+ * @param green - Green value of current pixel
215
+ * @param blue - Blue value of current pixel
216
+ * @returns - Corresponding gray value.
217
+ */
218
+ export function lightness(red, green, blue) {
219
+ let minValue = min(red, green, blue);
220
+ let maxValue = max(red, green, blue);
221
+ return (maxValue + minValue) / 2;
222
+ }
223
+ //# sourceMappingURL=greyAlgorithms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"greyAlgorithms.js","sourceRoot":"","sources":["../../src/operations/greyAlgorithms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export * from './convertColor';
2
+ export * from './convertDepth';
3
+ export * from './merge';
4
+ export * from './split';
5
+ export * from './threshold';
6
+ export * from './grey';
7
+ export * from './copyTo';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './convertColor';
2
+ export * from './convertDepth';
3
+ export * from './merge';
4
+ export * from './split';
5
+ export * from './threshold';
6
+ export * from './grey';
7
+ export * from './copyTo';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { IJS } from '../IJS';
2
+ /**
3
+ * Inverse of split. Merges multiple single-channel images into one.
4
+ *
5
+ * @param images - An array of single-channel images.
6
+ * @returns The merged image.
7
+ */
8
+ export declare function merge(images: IJS[]): IJS;
9
+ //# sourceMappingURL=merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/operations/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAmB,MAAM,QAAQ,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CA2CxC"}
@@ -0,0 +1,47 @@
1
+ import { IJS, ImageColorModel } from '../IJS';
2
+ /**
3
+ * Inverse of split. Merges multiple single-channel images into one.
4
+ *
5
+ * @param images - An array of single-channel images.
6
+ * @returns The merged image.
7
+ */
8
+ export function merge(images) {
9
+ const channels = images.length;
10
+ let colorModel;
11
+ if (channels === 2) {
12
+ colorModel = ImageColorModel.GREYA;
13
+ }
14
+ else if (channels === 3) {
15
+ colorModel = ImageColorModel.RGB;
16
+ }
17
+ else if (channels === 4) {
18
+ colorModel = ImageColorModel.RGBA;
19
+ }
20
+ else {
21
+ throw new RangeError(`merge expects an array of two to four images. Got ${channels}`);
22
+ }
23
+ const first = images[0];
24
+ if (first.channels !== 1) {
25
+ throw new Error(`each image must have one channel. Got ${first.channels}`);
26
+ }
27
+ for (let i = 1; i < channels; i++) {
28
+ const img = images[i];
29
+ if (img.channels !== 1) {
30
+ throw new Error(`each image must have one channel. Got ${img.channels}`);
31
+ }
32
+ if (img.width !== first.width ||
33
+ img.height !== first.height ||
34
+ img.depth !== first.depth) {
35
+ throw new Error('all images must have the same width, height and depth');
36
+ }
37
+ }
38
+ const newImage = IJS.createFrom(first, { colorModel });
39
+ for (let c = 0; c < channels; c++) {
40
+ const img = images[c];
41
+ for (let i = 0; i < newImage.size; i++) {
42
+ newImage.setValueByIndex(i, c, img.getValueByIndex(i, 0));
43
+ }
44
+ }
45
+ return newImage;
46
+ }
47
+ //# sourceMappingURL=merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/operations/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,MAAa;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAE/B,IAAI,UAA2B,CAAC;IAChC,IAAI,QAAQ,KAAK,CAAC,EAAE;QAClB,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC;KACpC;SAAM,IAAI,QAAQ,KAAK,CAAC,EAAE;QACzB,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC;KAClC;SAAM,IAAI,QAAQ,KAAK,CAAC,EAAE;QACzB,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC;KACnC;SAAM;QACL,MAAM,IAAI,UAAU,CAClB,qDAAqD,QAAQ,EAAE,CAChE,CAAC;KACH;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC5E;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC1E;QACD,IACE,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;YACzB,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAC3B,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EACzB;YACA,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;SAC1E;KACF;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACtC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC3D;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { IJS } from '../IJS';
2
+ /**
3
+ * Create an array of single-channel images based on a multi-channel image.
4
+ *
5
+ * @param image - The image with many channels.
6
+ * @returns Array of single-channel images.
7
+ */
8
+ export declare function split(image: IJS): IJS[];
9
+ //# sourceMappingURL=split.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../src/operations/split.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAmB,MAAM,QAAQ,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAUvC"}
@@ -0,0 +1,19 @@
1
+ import { IJS, ImageColorModel } from '../IJS';
2
+ /**
3
+ * Create an array of single-channel images based on a multi-channel image.
4
+ *
5
+ * @param image - The image with many channels.
6
+ * @returns Array of single-channel images.
7
+ */
8
+ export function split(image) {
9
+ const result = [];
10
+ for (let c = 0; c < image.channels; c++) {
11
+ const channel = IJS.createFrom(image, { colorModel: ImageColorModel.GREY });
12
+ for (let i = 0; i < channel.size; i++) {
13
+ channel.setValueByIndex(i, 0, image.getValueByIndex(i, c));
14
+ }
15
+ result.push(channel);
16
+ }
17
+ return result;
18
+ }
19
+ //# sourceMappingURL=split.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split.js","sourceRoot":"","sources":["../../src/operations/split.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,KAAU;IAC9B,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACrC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC5D;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACtB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { Mask } from '..';
2
+ import { IJS } from '../IJS';
3
+ export declare enum ThresholdAlgorithm {
4
+ HUANG = "HUANG",
5
+ INTERMODES = "INTERMODES",
6
+ ISODATA = "ISODATA",
7
+ LI = "LI",
8
+ MAX_ENTROPY = "MAX_ENTROPY",
9
+ MEAN = "MEAN",
10
+ MIN_ERROR = "MIN_ERROR",
11
+ MINIMUM = "MINIMUM",
12
+ MOMENTS = "MOMENTS",
13
+ OTSU = "OTSU",
14
+ PERCENTILE = "PERCENTILE",
15
+ RENYI_ENTROPY = "RENYI_ENTROPY",
16
+ SHANBHAG = "SHANBHAG",
17
+ TRIANGLE = "TRIANGLE",
18
+ YEN = "YEN"
19
+ }
20
+ interface ThresholdOptionsBase {
21
+ /**
22
+ * Image to use as the output.
23
+ */
24
+ out?: Mask;
25
+ }
26
+ export interface ThresholdOptionsThreshold extends ThresholdOptionsBase {
27
+ /**
28
+ * Threshold value that should be used. Should be an integer between 0 and Image.maxValue.
29
+ */
30
+ threshold: number;
31
+ }
32
+ export interface ThresholdOptionsAlgorithm extends ThresholdOptionsBase {
33
+ /**
34
+ * Specify a function to computes the threshold value.
35
+ *
36
+ * @default ThresholdAlgorithm.OTSU
37
+ */
38
+ algorithm?: ThresholdAlgorithm;
39
+ }
40
+ export declare type ThresholdOptions = ThresholdOptionsThreshold | ThresholdOptionsAlgorithm;
41
+ /**
42
+ * Compute threshold value for an image using the specified algorithm.
43
+ *
44
+ * @param image - The grey image.
45
+ * @param algorithm - Algorithm that defines the threshold.
46
+ * @returns The threshold value for the image.
47
+ */
48
+ export declare function computeThreshold(image: IJS, algorithm?: ThresholdAlgorithm): number;
49
+ /**
50
+ * Create a black and white image based on a threshold value.
51
+ *
52
+ * @param image - The grey image to convert.
53
+ * @param options - Threshold options.
54
+ * @returns The resulting mask.
55
+ */
56
+ export declare function threshold(image: IJS, options?: ThresholdOptions): Mask;
57
+ export {};
58
+ //# sourceMappingURL=threshold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threshold.d.ts","sourceRoot":"","sources":["../../src/operations/threshold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAoB7B,oBAAY,kBAAkB;IAC5B,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,EAAE,OAAO;IACT,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,GAAG,QAAQ;CACZ;AAED,UAAU,oBAAoB;IAC5B;;OAEG;IACH,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE;;;;OAIG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED,oBAAY,gBAAgB,GACxB,yBAAyB,GACzB,yBAAyB,CAAC;AAE9B;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,GAAG,EACV,SAAS,GAAE,kBAA4C,GACtD,MAAM,CA0CR;AAGD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI,CAgB1E"}
@@ -0,0 +1,106 @@
1
+ import { imageToOutputMask } from '../utils/getOutputImage';
2
+ import { validateValue } from '../utils/validators';
3
+ import huang from './thresholds/huang';
4
+ import intermodes from './thresholds/intermodes';
5
+ import isodata from './thresholds/isodata';
6
+ import li from './thresholds/li';
7
+ import maxEntropy from './thresholds/maxEntropy';
8
+ import mean from './thresholds/mean';
9
+ import minError from './thresholds/minError';
10
+ import minimum from './thresholds/minimum';
11
+ import moments from './thresholds/moments';
12
+ import { otsu } from './thresholds/otsu';
13
+ import percentile from './thresholds/percentile';
14
+ import renyiEntropy from './thresholds/renyiEntropy';
15
+ import shanbhag from './thresholds/shanbhag';
16
+ import { triangle } from './thresholds/triangle';
17
+ import yen from './thresholds/yen';
18
+ export var ThresholdAlgorithm;
19
+ (function (ThresholdAlgorithm) {
20
+ ThresholdAlgorithm["HUANG"] = "HUANG";
21
+ ThresholdAlgorithm["INTERMODES"] = "INTERMODES";
22
+ ThresholdAlgorithm["ISODATA"] = "ISODATA";
23
+ ThresholdAlgorithm["LI"] = "LI";
24
+ ThresholdAlgorithm["MAX_ENTROPY"] = "MAX_ENTROPY";
25
+ ThresholdAlgorithm["MEAN"] = "MEAN";
26
+ ThresholdAlgorithm["MIN_ERROR"] = "MIN_ERROR";
27
+ ThresholdAlgorithm["MINIMUM"] = "MINIMUM";
28
+ ThresholdAlgorithm["MOMENTS"] = "MOMENTS";
29
+ ThresholdAlgorithm["OTSU"] = "OTSU";
30
+ ThresholdAlgorithm["PERCENTILE"] = "PERCENTILE";
31
+ ThresholdAlgorithm["RENYI_ENTROPY"] = "RENYI_ENTROPY";
32
+ ThresholdAlgorithm["SHANBHAG"] = "SHANBHAG";
33
+ ThresholdAlgorithm["TRIANGLE"] = "TRIANGLE";
34
+ ThresholdAlgorithm["YEN"] = "YEN";
35
+ })(ThresholdAlgorithm || (ThresholdAlgorithm = {}));
36
+ /**
37
+ * Compute threshold value for an image using the specified algorithm.
38
+ *
39
+ * @param image - The grey image.
40
+ * @param algorithm - Algorithm that defines the threshold.
41
+ * @returns The threshold value for the image.
42
+ */
43
+ export function computeThreshold(image, algorithm = ThresholdAlgorithm.OTSU) {
44
+ if (image.channels !== 1) {
45
+ throw new Error('threshold can only be computed on images with one channel');
46
+ }
47
+ const histogram = image.histogram();
48
+ switch (algorithm) {
49
+ case ThresholdAlgorithm.HUANG:
50
+ return huang(histogram);
51
+ case ThresholdAlgorithm.INTERMODES:
52
+ return intermodes(histogram);
53
+ case ThresholdAlgorithm.ISODATA:
54
+ return isodata(histogram);
55
+ case ThresholdAlgorithm.LI:
56
+ return li(histogram, image.size);
57
+ case ThresholdAlgorithm.MAX_ENTROPY:
58
+ return maxEntropy(histogram, image.size);
59
+ case ThresholdAlgorithm.MEAN:
60
+ return mean(histogram, image.size);
61
+ case ThresholdAlgorithm.MINIMUM:
62
+ return minimum(histogram);
63
+ case ThresholdAlgorithm.MIN_ERROR:
64
+ return minError(histogram, image.size);
65
+ case ThresholdAlgorithm.MOMENTS:
66
+ return moments(histogram, image.size);
67
+ case ThresholdAlgorithm.OTSU:
68
+ return otsu(histogram, image.size);
69
+ case ThresholdAlgorithm.PERCENTILE:
70
+ return percentile(histogram);
71
+ case ThresholdAlgorithm.RENYI_ENTROPY:
72
+ return renyiEntropy(histogram, image.size);
73
+ case ThresholdAlgorithm.SHANBHAG:
74
+ return shanbhag(histogram, image.size);
75
+ case ThresholdAlgorithm.TRIANGLE:
76
+ return triangle(histogram);
77
+ case ThresholdAlgorithm.YEN:
78
+ return yen(histogram, image.size);
79
+ default:
80
+ throw new RangeError(`unsupported threshold algorithm: ${algorithm}`);
81
+ }
82
+ }
83
+ // See: https://docs.opencv.org/4.0.1/d7/d1b/group__imgproc__misc.html#gaa9e58d2860d4afa658ef70a9b1115576
84
+ /**
85
+ * Create a black and white image based on a threshold value.
86
+ *
87
+ * @param image - The grey image to convert.
88
+ * @param options - Threshold options.
89
+ * @returns The resulting mask.
90
+ */
91
+ export function threshold(image, options = {}) {
92
+ let thresholdValue;
93
+ if ('threshold' in options) {
94
+ thresholdValue = options.threshold;
95
+ }
96
+ else {
97
+ thresholdValue = computeThreshold(image, options.algorithm);
98
+ }
99
+ validateValue(thresholdValue, image);
100
+ const result = imageToOutputMask(image, options);
101
+ for (let i = 0; i < image.size; i++) {
102
+ result.setBitByIndex(i, image.getValueByIndex(i, 0) > thresholdValue ? 1 : 0);
103
+ }
104
+ return result;
105
+ }
106
+ //# sourceMappingURL=threshold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threshold.js","sourceRoot":"","sources":["../../src/operations/threshold.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Return a threshold for a histogram using Huang algorithm.
3
+ *
4
+ * @param histogram - Image histogram.
5
+ * @returns The threshold.
6
+ */
7
+ export default function huang(histogram: Uint32Array): number;
8
+ //# sourceMappingURL=huang.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"huang.d.ts","sourceRoot":"","sources":["../../../src/operations/thresholds/huang.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,CAuE5D"}
@@ -0,0 +1,78 @@
1
+ /*
2
+ * * see http://rsb.info.nih.gov/ij/developer/source/ij/process/AutoThresholder.java.html.
3
+ * Huang: Implements Huang's fuzzy thresholding method: Huang, L-K & Wang, M-J J (1995),
4
+ * "Image thresholding by minimizing the measure of fuzziness", Pattern Recognition 28(1): 41-51
5
+ */
6
+ /**
7
+ * Return a threshold for a histogram using Huang algorithm.
8
+ *
9
+ * @param histogram - Image histogram.
10
+ * @returns The threshold.
11
+ */
12
+ export default function huang(histogram) {
13
+ /* Determine the first non-zero bin */
14
+ let firstBin = 0;
15
+ for (let ih = 0; ih < histogram.length; ih++) {
16
+ if (histogram[ih] !== 0) {
17
+ firstBin = ih;
18
+ break;
19
+ }
20
+ }
21
+ /* Determine the last non-zero bin */
22
+ let lastBin = histogram.length - 1;
23
+ for (let ih = histogram.length - 1; ih >= firstBin; ih--) {
24
+ if (histogram[ih] !== 0) {
25
+ lastBin = ih;
26
+ break;
27
+ }
28
+ }
29
+ const term = 1.0 / (lastBin - firstBin);
30
+ const mu0 = new Array(histogram.length);
31
+ let sumPix = 0;
32
+ let numPix = 0;
33
+ for (let ih = firstBin; ih < histogram.length; ih++) {
34
+ sumPix += ih * histogram[ih];
35
+ numPix += histogram[ih];
36
+ mu0[ih] = sumPix / numPix;
37
+ }
38
+ const mu1 = new Array(histogram.length);
39
+ sumPix = numPix = 0;
40
+ for (let ih = lastBin; ih > 0; ih--) {
41
+ sumPix += ih * histogram[ih];
42
+ numPix += histogram[ih];
43
+ mu1[ih - 1] = sumPix / numPix;
44
+ }
45
+ /* Determine the threshold that minimizes the fuzzy entropy*/
46
+ let threshold = -1;
47
+ let minEnt = Number.MAX_VALUE;
48
+ for (let it = 0; it < histogram.length; it++) {
49
+ let ent = 0;
50
+ let muX;
51
+ for (let ih = 0; ih <= it; ih++) {
52
+ /* Equation (4) in Ref. 1 */
53
+ muX = 1 / (1 + term * Math.abs(ih - mu0[it]));
54
+ if (!(muX < 1e-6 || muX > 0.999999)) {
55
+ /* Equation (6) & (8) in Ref. 1 */
56
+ ent +=
57
+ histogram[ih] *
58
+ (-muX * Math.log(muX) - (1 - muX) * Math.log(1 - muX));
59
+ }
60
+ }
61
+ for (let ih = it + 1; ih < histogram.length; ih++) {
62
+ /* Equation (4) in Ref. 1 */
63
+ muX = 1 / (1 + term * Math.abs(ih - mu1[it]));
64
+ if (!(muX < 1e-6 || muX > 0.999999)) {
65
+ /* Equation (6) & (8) in Ref. 1 */
66
+ ent +=
67
+ histogram[ih] *
68
+ (-muX * Math.log(muX) - (1 - muX) * Math.log(1 - muX));
69
+ }
70
+ }
71
+ if (ent < minEnt) {
72
+ minEnt = ent;
73
+ threshold = it;
74
+ }
75
+ }
76
+ return threshold;
77
+ }
78
+ //# sourceMappingURL=huang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"huang.js","sourceRoot":"","sources":["../../../src/operations/thresholds/huang.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Return a threshold for a histogram using Intermodes algorithm.
3
+ *
4
+ * @param histogram - Image histogram.
5
+ * @returns The threshold.
6
+ */
7
+ export default function intermodes(histogram: Uint32Array): number;
8
+ //# sourceMappingURL=intermodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intermodes.d.ts","sourceRoot":"","sources":["../../../src/operations/thresholds/intermodes.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,CA6BjE"}