Looking for a region growing algorithm

I work with a raster set representing land values and I would like to automatically create polygons with random shape but with certain size and/or land value given a centroid point of each polygon. The centroid point will act as the initial raster cell (a pixel called as a seed cell) that will belong in that certain polygon and then a region growing algorithm will begin adding pixels around a centroid pixel until the constraint of size and/or land value of a polygon will be satisfied.

Is anybody who has any idea about an existing region growing algorithm? or at least which is the class of ArcObjects or Interfaces that I may work with, so as to read the value of each pixel, create a new polygon by adding new pixel to it?

I hope that the above make sense and somebody may help me.

Edit

Basically I intend to automatically create polygons with regular shapes and a series of constraints such as size, land value etc. using a genetic algorithm (GA). But first I need to create a set of random solutions in order to feed the GA.So, for instance on land block which is an area enclosed by roads I have already saying 4 centroid points. Each centroid point represents the approximate location of each new land parcel. In addition, each centroid is associated with attributes of each parcel i.e. size and land value. So, I want to begin by each centroid as a seed point of the region growing algorithm to starting creating a random shape for each parcel based on each centroid.

I hope that the above make sense. I look forward how can I create this region growing algorithm or if there is already one in VBA and ArcObjects.

• Could you say something about the purpose of creating random polygons? After all, there are many, many kinds of randomness. Quite a few of them (such as simple methods to make random fractal polygons) are unlikely to be of interest to you. If you are trying to simulate anything realistic, the procedure will have to incorporate aspects of the phenomena which actually create the polygons you are interested in. – whuber May 19 '11 at 15:37
• When you add a cell to a region, are you wanting to add the lowest cost adjacent cell, or the cell closest to the polygon centroid? – Kirk Kuykendall May 19 '11 at 20:22
• I am sorry for the delay. I have not noticed this comment. Each time I want to add an adjacent cell in the current region until some constraints will be met. – Demetris Jun 1 '11 at 14:38

A cost distance analysis is one approach: classify the raster based on land value starting from the seed point, then thresholding that result will give you the cumulative cost area as a raster. Just translate that classified raster into a polygon, and you should get your result. Depending on the specifics of what you're trying to do, you may be able to get away with using the Cost Allocation function with your seed locations and land value raster to achieve your desired output.

• The idea is nice because it actually relates the polygon to something real (land value). But how does "thresholding that result" (which presumably means selecting all points with costs less than a fixed value) translate to a targeted cumulative cost? In addition, the procedure is not "random," but that's no problem: one could randomize aspects of the cost grid beforehand so the output would be somewhat random. – whuber May 19 '11 at 15:35

If you are willing to investigate options outside ArcGIS, the open source/free SAGA GIS contains a region growing algorithm, described in this paper: http://downloads.sourceforge.net/saga-gis/gga115_03.pdf

http://www.saga-gis.org

• Thank you very much for this. Literature is very usefull but I am wondering if there is already such a code in VBA and ArcObjects. – Demetris May 20 '11 at 4:47

You could try the gdal_fillnodata.

• Your answer got flagged up in the review queue as low-quality because of its length and content. If you are suggesting that the asker of this question should investigate alternative software then I recommend that you edit your answer to provide more details about about why what he is trying to do won't work and why what you suggest will. – PolyGeo Aug 27 '13 at 23:59