Detect and Fill part of an image
-
Hello, I want to implement something similar to map colouring (Not the famous problem but actually filling). Let us say, i have a picture of a continent, and i want to select a country and fill it with a colour and also in a list view, i want to highlight that country with some additional info. At first, i thought i could get points (borders of a country), and use triangulation or polygon filling and define bounding rectangles or polygons (simple way, not using any tree implementation), but this approach needs lots of data generated by me. (using OpenGL) my question is, is it feasible to implement this with a picture, detecting boundaries (i saw threads about edge detection) automatically for each country name and store them for hit testing and use filling algorithms (flood vs.)? (I am a real beginner on Image Processing, Bitmap Handling, GDI etc.:)) How would you solve this? Thank you, Bekir Turkmen.
-
Hello, I want to implement something similar to map colouring (Not the famous problem but actually filling). Let us say, i have a picture of a continent, and i want to select a country and fill it with a colour and also in a list view, i want to highlight that country with some additional info. At first, i thought i could get points (borders of a country), and use triangulation or polygon filling and define bounding rectangles or polygons (simple way, not using any tree implementation), but this approach needs lots of data generated by me. (using OpenGL) my question is, is it feasible to implement this with a picture, detecting boundaries (i saw threads about edge detection) automatically for each country name and store them for hit testing and use filling algorithms (flood vs.)? (I am a real beginner on Image Processing, Bitmap Handling, GDI etc.:)) How would you solve this? Thank you, Bekir Turkmen.
beko wrote:
us say, i have a picture of a continent, and i want to select a country and fill it with a colour and also in a list view, i want to highlight that country with some additional info.
do you already know the boundaries of the countries ? if so, how are the boundaries stored ? Cleek | Image Toolkits | Thumbnail maker
-
beko wrote:
us say, i have a picture of a continent, and i want to select a country and fill it with a colour and also in a list view, i want to highlight that country with some additional info.
do you already know the boundaries of the countries ? if so, how are the boundaries stored ? Cleek | Image Toolkits | Thumbnail maker
i dont know the boundaries initially. However, i can find them manually and store them as point vectors for using input to Delaunay Triangulation (i have implemented one or two parts this way, without using any info from any picture) and display it with OpenGL. I do not need any information about boundaries actually other than hit testing, so i thought i could retrieve those boundaries(using edge detection algorithms) from the picture directly and display the picture as the view.(In data preparation stage, for example, when i click Canada, i will generate the boundary data and define it as Canada and write to a file (perhaps with some processing to reduce number of points) to read it later for hit testing.) Note that in the picture, boundaries are clearly given. Thanks. Bekir.
-
Hello, I want to implement something similar to map colouring (Not the famous problem but actually filling). Let us say, i have a picture of a continent, and i want to select a country and fill it with a colour and also in a list view, i want to highlight that country with some additional info. At first, i thought i could get points (borders of a country), and use triangulation or polygon filling and define bounding rectangles or polygons (simple way, not using any tree implementation), but this approach needs lots of data generated by me. (using OpenGL) my question is, is it feasible to implement this with a picture, detecting boundaries (i saw threads about edge detection) automatically for each country name and store them for hit testing and use filling algorithms (flood vs.)? (I am a real beginner on Image Processing, Bitmap Handling, GDI etc.:)) How would you solve this? Thank you, Bekir Turkmen.
Way too little information to make a decent recommendation. If the area under the different regions have similiar features, look into doing some kind of connected component analysis.
Quran Lectures (updated 1/3/06) "They are MUSLIM. It does not matter how you split it up: all msulims (so they say) see every other muslim as a brother, regardless of origin or nationality." -legalAlien. Alhamdullah for the blessing of Islam
-
Hello, I want to implement something similar to map colouring (Not the famous problem but actually filling). Let us say, i have a picture of a continent, and i want to select a country and fill it with a colour and also in a list view, i want to highlight that country with some additional info. At first, i thought i could get points (borders of a country), and use triangulation or polygon filling and define bounding rectangles or polygons (simple way, not using any tree implementation), but this approach needs lots of data generated by me. (using OpenGL) my question is, is it feasible to implement this with a picture, detecting boundaries (i saw threads about edge detection) automatically for each country name and store them for hit testing and use filling algorithms (flood vs.)? (I am a real beginner on Image Processing, Bitmap Handling, GDI etc.:)) How would you solve this? Thank you, Bekir Turkmen.
I suggest brute-force and pig-ignorance. It's not pretty, but it always works for me! Assuming the map is static (because the countries / areas don't change) you could colour a bitmap image of the map offline, using some graphics package, so that all countries use different colours. If you use 24-bit colours, the difference could be in a single LSbit, which would un-noticeable. Then display the map as a bitmap image. When you click on a point, get the colour under the cursor, and match that to the country, in order to get country-specific information. To change the colour you could (using brute force) loop through all the pixels in a copy of your original bitmap, replacing all pixels of the matching colour with a new colour, then display the updated bitmap.
-
I suggest brute-force and pig-ignorance. It's not pretty, but it always works for me! Assuming the map is static (because the countries / areas don't change) you could colour a bitmap image of the map offline, using some graphics package, so that all countries use different colours. If you use 24-bit colours, the difference could be in a single LSbit, which would un-noticeable. Then display the map as a bitmap image. When you click on a point, get the colour under the cursor, and match that to the country, in order to get country-specific information. To change the colour you could (using brute force) loop through all the pixels in a copy of your original bitmap, replacing all pixels of the matching colour with a new colour, then display the updated bitmap.
-
Thanks for the suggestion, I think that is quite practical, i will try to implement the way you suggested. Thanks to all replies. Bekir.