Im in a fix…
for my masters degree i gotto create a program which can extract a road network from a high resolution satellite image and then generate a 3d model of the road.
On my prof’s insitence i had to work in openGL,in which i know im a total novice
now that the time is running out and im nowhere near completion.just managed to detect the road,that too not perfectly.
anyone to help me with a code ? is that a lot to ask ? sorry,if it is…
Hmmm, what data is your sat image giving you? Do you have depth data for this road? or are you just wanting to extract the road as a flat surface? have a look at glutesselate
I would go to nehe.gamedev.net it has alot of good tutorials especialy for beginers. You can email me any questions and or code, I am no pro but I do have a pretty good Idea what I am doing.
the data i get from the satellite image is a set of pixel coordinates which my code finds to be of similar pixel color value to the one chosen by the user when he clicks a valid road point on the image.
dheitbri, i can actually send u the zip file containing the codes if u would like to see…
it wouldnt be a good opengl code,anyway…but i have managed with what i learnt in the past few months
buddy send me the file i am not an expert but i think i wil be able to help…give a slight description of your project
Originally posted by romeoneverdies:
any takers ??
send me ur code.
How to get such images???
I would be more than grateful if You gave me a hint,
bacause I am making a simulatin engine as my graduation work and need to create and texture a landscape, but I can’t find TEXTURES.
ma mail is:
i donno if u are asking abt the images i use for my work.
if thats what u meant,u can find them in this link below.have fun
I’ll let you know about my work in progress
if I do sth good.
guys, prashanth and raza…did u both get my mail with my code attached ??
so you just want to segment a 2d area from your sat image based on an initial pixel colour. I assume you have figured you to do this and now have a binary image? of road an non road pixels? And you wnat to turn this into a 2d road that can be view from various angles?
what my program so far does is, once the user chooses his point on the road,the program will go on checking the neighboring pixel of this chosen pixel and whenever a pixel matches the original chosen pixel,exactly or near exactly in its color value,the program stores the coordinate value of this pixel and proceeds to the next one. so what we have with us at the end of a run is a set of coordinates which partially or fully forms a road.
now using this pixel coordinates we need to build a 3d model of the road.that is,a 3 d plane showing the road area clearly.
right ok, there are obviously lots of ways of doing this, I will just throw a few ideas about. Find the edge pixels as it is essentially these that you need. this should be quite hard as you just check for pixels that have road one side and non road the other. don’t know what your maths is like, or how much time you have but… if you were to join these edge pixels together you would have lots of lines that desscribe the edges of the road, ideally you would want to simplify this, as in have less lines describing the road (I assume you are not detecting curves, in the equation sense). just do some trig stuff here as in if 2 neighbouring lines are similar, in terms of vectors, then join them and do a weighted average of the vectors or something. this eventually will give you a set of lines for each side of the road, which are your polygon vertices. this is an image precessing way of doing it, i expect there are some opengl bodge ways of similating this, maybe mapping your image to a quad, every non road pixel becomes transparent so when you rotate your plane to view it it looks like you are just rotating the road… I am sure there are plenty of other ways…
i will try to figure out how to put in ur idea in mine,and see if it hits my mediocre openGL knowledge
will get back once i see some things going or even if not…
any other suggestions are always welcome…
I’ve just visited the link you gave: http://www.spaceimaging.com/gallery/default.htm
And in every all of the largest images (2000x2000) in pixels i found the same. There are roads that you won’t clearly convert to anything because are couppled of trees and others covered by the shadow of the front neighbor buildings so these roads will be affected. And with the lower resolution or size images is better not to try…
Question: Are those images a sample to explain what you wan2do?
Or simply that images are the source of data for your work?
I’ve examined 4 images in detail taking into account not my experience in OpenGL but in image procedures. And i want U 2 have clear that:
Images cannot be compressed to obtain better results applying a math algorithm.
Images are taken in a pair of opposite angles of sun, latter apply the procedure to both images independently and latterly apply the math algorithms you like for ADD or SUB or exclude pixels to reach a unique final pixel data that you may convert to vertex data.
Image resolution(not size in pixels) is key in detecting similar colored pixels starting from a given pixel and its color.
Image sharpness is one of the most heavy factors for detecting color frontiers since the sharper the image, the clearer the color frontier, but an excessive sharpness can make every pixel on the image very different in color that the neighbor.
I’m not trying to be pessimistic. I’m just recommending you to be careful when selecting the data source image because with these images you won’t get so far!
Talking about images, in anything i can help!!!
woww,thanx for the msg, SPARKER
but that link was just to show where my images come from.but now they have taken away the gallery they use to have before,which had a lot more images with clear road stretches.now there are a very few images available in the site.
but still,i will have in mind,what u said abt the image processing and i will get back to u if i have some doubts abt it. thanx very much for the help