For the Nantucket project I have used the scenProc feature detection function to get the autogen trees from the imagery. But would a similar approach also work for scrubs?
First I tried with polygonal autogen vegetation. The detection of the polygons went OK, but the density of the resulting autogen in FSX was much too sparse to be realistic.
So the next attempt was to use the PLACEPOINTSINPOLYGON step to generate point features within the detected polygons and then create rectangular vegetation autogen from those points. That did work, but it was slooooooow. So also not a feasible way to generate scrubs for the entire island.
Therefore I have modified the feature detection step now so that it can generate point features directly, instead of polygons. This saves the step to generate them later. How does it work? Here are the main steps of the point feature detection algorithm:
- The first step is similar to the polygon detection algorithm. The texture filter is ran over the imagery and the result of this is a new raster image that indicates areas that match the criteria of the filter.
- In the polygon detection mode this raster image would be polygonized into polygons, but in the point detection mode the raster image is used differently. Using the user provided spacing in pixels the raster image is tested to see if that location matches the filter or not. If it matches a point feature is made at the location.
For Nantucket I used a spacing of 20 meters for my scrubs and that gives a much denser scrub autogen than I got with the polygonal autogen.
This update of the feature detection step is available in the next development release. Be aware that the changes to the texture filter can influence your saved texture filter configuration files. The filter now also takes a minimum and maximum value of each pixel channel and if you load an previously saved filter this maximum will be zero, resulting in no matches. So please check your existing filters with this new update.
The only problem I have found so far with the scrub detection is that it’s much slower than trees. Not really because the algorithm, just because there are potentially more areas with scrubs than trees in many images. So there are more pixels to examine. I have some ideas to speed up the feature detection by moving part of the logic from the CPU to the GPU. It will be interesting to see how much that can speed up things in the future.
Hi Arno, did you make progress investigating further the possibility of moving processing from CPU to GPU? Cheers K
Hi Kevin, I have some ideas about this, but due to lack of time I have not focused on it. The current implementation works fast enough for my projects at the moment (I have been working on other features to speed things up). Just drop me an email if you have specific ideas or wishes, we can always discuss.