summaryrefslogtreecommitdiff
path: root/test/lua/multimorpho.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/lua/multimorpho.lua')
-rw-r--r--test/lua/multimorpho.lua103
1 files changed, 0 insertions, 103 deletions
diff --git a/test/lua/multimorpho.lua b/test/lua/multimorpho.lua
deleted file mode 100644
index 742d713..0000000
--- a/test/lua/multimorpho.lua
+++ /dev/null
@@ -1,103 +0,0 @@
--- multi-step morphological opening on a binarized image, with increasing structuring element (Se) size:
--- step 1 - 3x3 Se
--- step 2 - 5x5 Se
--- step 3 - 7x7 Se
--- Step n - (2n+1)x (2n+1) Se
--- after each step, a count of the objects (white items) in the opened image has to be performed,
--- and the number of counted items to be saved in a .txt file for easy and fast exporting to excel
-
-require"imlua"
-require"imlua_process"
-
-err_msg = {
- "No error.",
- "Error while opening the file.",
- "Error while accessing the file.",
- "Invalid or unrecognized file format.",
- "Invalid or unsupported data.",
- "Invalid or unsupported compression.",
- "Insufficient memory",
- "Interrupted by the counter",
-}
-
-colorspace_str = {
- "RGB",
- "MAP",
- "GRAY",
- "BINARY",
- "CMYK",
- "YCBCR",
- "LAB",
- "LUV",
- "XYZ"
-}
-
-num_step = arg[1]
-file_name1 = arg[2]
-if (not num_step or not file_name1) then
- print("Must have the number of steps and a file name as parameters.")
- print(" Can have more than one file name as parameters and can use wildcards.")
- print(" Usage:")
- print(" lua multimorpho.lua num_step filename1 filename2 ...")
- return
-end
-
-print(">>> Multi-step Morphological Opening <<<")
-print("Number of Steps: "..num_step)
-print("")
-
-function ProcessImageFile(file_name, num_step)
- print("Loading File: "..file_name)
- image, err = im.FileImageLoad(file_name);
-
- if (err and err ~= im.ERR_NONE) then
- error(err_msg[err+1])
- end
-
- if (image:ColorSpace() ~= im.BINARY) then
- error("Invalid Image Color Space. Must be a Binary image [Color Space="..colorspace_str[image:ColorSpace()+1].."].")
- end
-
- file_name = file_name..".csv"
- print("Saving Log File: "..file_name)
- log = io.open(file_name, "w")
-
- morph_image = image:Clone()
- obj_image = im.ImageCreateBased(image, nil, nil, im.GRAY, im.USHORT)
-
- for step = 1, num_step do
- kernel_size = 2*step+1
- print(" Binary Morphology Open [Kernel Size="..kernel_size.."x"..kernel_size.."].")
- im.ProcessBinMorphOpen(image, morph_image, kernel_size, 1) -- 1 interaction
-
- num_obj = im.AnalyzeFindRegions(morph_image, obj_image, 4, false) -- 4 connected, ignore objects that touch the border
- print(" Objects Found: "..num_obj)
- log:write(kernel_size..";"..num_obj.."\n")
-
- if (num_obj == 0) then
- step = num_step
- end
-
- obj_image:Clear()
- morph_image:Clear()
- end
-
- log:close()
- obj_image:Destroy()
- morph_image:Destroy()
- image:Destroy()
- print("Done File.")
- print("")
-end
-
-file_count = 0
-for index,value in ipairs(arg) do
- if (index > 1) then
- ProcessImageFile(arg[index], num_step)
- file_count = file_count + 1
- end
-end
-
-if (file_count > 1) then
- print("Processed "..file_count.." Files.")
-end