summaryrefslogtreecommitdiff
path: root/html
diff options
context:
space:
mode:
Diffstat (limited to 'html')
-rw-r--r--html/en/history.html3
-rw-r--r--html/examples/analyze.lua29
2 files changed, 15 insertions, 17 deletions
diff --git a/html/en/history.html b/html/en/history.html
index 8c7f892..4f100f5 100644
--- a/html/en/history.html
+++ b/html/en/history.html
@@ -37,6 +37,9 @@
<li dir="ltr"><span style="color: #008000"><span style="color: #ff0000">Fixed:</span><span
style="color: #000000"> alpha support in image:<strong>CopyPlane</strong>()
and in channel indexing in Lua.</span></span></li>
+ <li dir="ltr"><span style="color: #008000"><span style="color: #ff0000">Fixed:</span><span
+ style="color: #000000"> incomplete initialization of the array in
+ <strong>imAnalyzeMeasureArea</strong>.</span></span></li>
</ul>
<h3 dir="ltr">
<a href="http://sourceforge.net/projects/imtoolkit/files/3.5/">Version 3.5</a> (02/Oct/2009)</h3>
diff --git a/html/examples/analyze.lua b/html/examples/analyze.lua
index 7f06496..bc4a78e 100644
--- a/html/examples/analyze.lua
+++ b/html/examples/analyze.lua
@@ -1,28 +1,23 @@
require"imlua"
require"imlua_process"
-local filename = "lena.jpg"
+local filename = "rice.png" -- image must be im.GRAY and im.BYTE for this script
local image = im.FileImageLoad(filename)
-local gray = im.ImageCreate(image:Width(), image:Height(), im.GRAY, image:DataType())
-local binary = im.ImageCreate(image:Width(), image:Height(), im.BINARY, image:DataType())
-local region = im.ImageCreate(image:Width(), image:Height(), im.GRAY, im.USHORT)
-
--- make it grayscale
-im.ConvertColorSpace(image, gray)
-gray:Save("lena_gray.jpg", "JPEG")
+local binary = im.ImageCreateBased(image, nil, nil, im.BINARY, nil)
+local region = im.ImageCreateBased(image, nil, nil, nil, im.USHORT)
-- make it binary
-im.ProcessSliceThreshold(gray, binary, 0, 128)
-binary:Save("lena_binary.jpg", "JPEG")
+im.ProcessPercentThreshold(image, binary, 70) --lots of background
-local count = im.AnalyzeFindRegions(binary, region, 4, 1)
+-- search for closed regions, don't count objects that touches the image borders
+local count = im.AnalyzeFindRegions(binary, region, 4, 0)
print("regions: ", count)
-local region2 = im.ImageCreate(image:Width(), image:Height(), im.GRAY, im.BYTE)
-im.ConvertDataType(region, region2, 0, 0, 0, 0)
+local area = im.AnalyzeMeasureArea(region, count)
+local major_slope, major_length, minor_slope, minor_length = im.AnalyzeMeasurePrincipalAxis(region, area, nil, nil, count)
-local region3 = im.ImageCreate(image:Width(), image:Height(), im.MAP, im.BYTE)
-im.ConvertColorSpace(region2, region3)
-region3:SetPalette(im.PaletteHighContrast(), 256)
-region3:Save("lena_region.gif", "GIF")
+print("object", "area", "major length", "minor length")
+for r=1, count do
+ print(r, area[r-1], string.format("%5.5g", major_length[r-1]), string.format("%5.5g", minor_length[r-1]))
+end