Software to Divide an Image Into Discrete Patterns
slashyslashy asks: "My preschooler son is fond of color-by-number pages. We have already exhausted most of the online sites that offer somewhat limited sets of coloring pages that he can print to a paper and color. Besides, most of them offer extremely basic (read boring) sets of simple images (flowers, dinosaurs, etc). We were wondering if we can take any regular picture image and convert it into a pattern suitable (divide up the black and white picture into series of random patterns) for color-by-number pages. Is there any good software that allows converting a picture to a pattern suitable for coloring by numbers? Linux is preferable but Windows is also fine. Thank you."
This could be wrong, and it could be like trying to kill an ant with a sledgehammer, but here's a possible approach.
A program like photoshop with lug-ins and image processing / manipulation capabilities may do the job.
Scan an image, and using a combination of options such as color-reduction, "mattisify" (or others, e.g. Bas-Relief, etc), etc... may produce an acceptable result.
Good luck
Sam
This is Slashdot, a geek site. Of course the submitter could just go to the store and buy some books, but where's the fun in that? Maybe just wants to see if it's possible to do it himself.
When I was a kid, Dinosaurs were really cool.
God spoke to me.
Yeah seriously. You could probably get a book of 100 pages for around $1.00. That's cheaper than printing out the pages on even a laser printer, not even talk about the cost of inkjet printers. Not to mention that it's a lot easier to just pick up a book that's already there then go print something from the computer every time. Although I think the computer would be nice, as it could be used for whichever images he wanted. On a completely unrelated note, he could even encourage him to draw some of his own pictures. I've heard that coloring books are to blame for a lot of kids' poor drawing and lack of art skills. We only ever learn to fill in lines that were already drawn for us. If we never try to draw anything for ourselves, we will never be able to draw anything. Kids will be just as happy with a blank sheet of paper and some crayons as they will with some fancy coloring book. And they'll be much better off because they will be learning a useful skill. Instead of learning to fill in predrawn images with color.
Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
The problem is in provide a discreet definition for subjective and inuitive judgements. I work my own computer vision program as a hobby, and the biggest hurdle is in defining what exactly is a "thing." Take a scene of a park. The hills may have soft shadows around their curves, where does the light green end and the dark green begin when the border is blurred across 50 pixels? What about rational constructs such as a tree? Abstractly it would just be a field of green with bushy edges, but in actuallity you'll have 1000s of leaves in different positions and orientations leading to many contrasting colors. A raw measurement of color would yield several small fields of varying shades of green. Intelligence is required to properly segment an arbitrary image. Either in the program's ability to recognize context or in the user's choice of picture. Ppl don't realize just how difficult seemingly simple things like sight really are because the mind is a massively parallel processor that learns by example, whereas a computer is a linear device that requires exact specification. From my experience, I've learned that there will always be scene ambiguous enough to too fool a computer and even a human (e.g. optical illusions). What is necessary to teach a computer to see isn't an accurate definition of a "thing" (there will never be one), it's experience. Teaching a computer THAT is a whole 'nother story. Regarding simple segmentation for color-by-numbers, it's best to fool around in your (scriptable) editor of choice looking for the sequence of steps that would do the job manually. (plenty of edge detection plugins around) Then automate that process and only select pictures that suit that process. It took billions of years under constant threat of death for our vision to evolve to what it is today, then many years more before we can utilize it (colored rings, round pegs in square holes). Rather than wait for computer scientists to reinvent the eye, limit your expectation and simplify the problem.
Print the image out faintly, perhaps in grayscale, and let him trace and fill in the image himself. Computers just aren't that good at recognising the boundaries of objects in pictures; a preschooler could probably do a better job than a computer and it'll make it less "boring" for him too...
Software patents delenda est.