3 ms·
eversince I have seen http://tinyurl.com/6ddzjh http://tinyurl.com/6ddzjh , I have always wanted to automate creation of such images. such an attempt is http://
by ideamonk 18y ago
eversince I have seen http://tinyurl.com/6ddzjh http://tinyurl.com/6ddzjh , I have always wanted to automate creation of such images. such an attempt is http://ideamonk.blogspot.com/2008/08/trying-to-dazzle.html http://ideamonk.blogspot.com/2008/08/trying-to-dazzle.html
But I am wondering how to perfect it. Right now it's just a rand() doing the magic. But there is something more to the original art. It seems that "the edges have a nice particle effect, the size of squares vary according to either luminance or similarity of neighbor area... and there might be a lot more to watch out! Boxes don't overlap much in the original work, and smaller tiny boxes play very significant role in giving life to the guitar kid..."
So, fellow hackers please help this kid as to what he needs to know in image processing to be able to do the trick. Like how to detect uniform areas in an image... how to detect edges. For example if i have a photo of a shirt, I wish to detect where it is crumpled where it is plain. If I am able to do this, I will put big squares at plain areas and small ones at non uniform areas. I think that might reproduce the effect!
Thanks!
- aswanson 18y agoFor the edge detection, try sobel or laplacian: http://www.pages.drexel.edu/~weg22/can_tut.html http://www.pages.drexel.edu/~weg22/can_tut.html For uniform segments, perhaps quadtree decomposition: http://matlab.izmiran.ru/help/toolbox/images/enhanc12.html http://matlab.izmiran.ru/help/toolbox/images/enhanc12.html
- dandelany 18y agoIn regards to the size, it looks to me like it varies according to similarity of neighboring area. This makes much more sense than luminance, since it allows the more complex areas of the images to be represented by more "pixels".
- ideamonk 18y agoYes after trying out luminance style plotting, I'm sure its based on uniformity! How about taking a point(p,q) and the area of 3x3 around it, find the average of luminance in this 3x3 block, store it as a0 and now increase the size of 3x3 square to 4x4, find average of luminance, lets call it a1, now if |a1-a0|<threshold, we say the area is uniform! and repeat steps till size<size_threshold Will this work? or instead of averaging luminance, I should average R,G,B separately and match against threshhold to increase the size(to be more strict) Have got exam tomorrow, will work more on these insights as soon as I finish preparing my data sctuctures and discrete maths syllabus. thanks :), (psst! can't get my head away from these new ideas)
- sgk284 18y agoA very simple, yet very effective, method of determining if a pixel is in an area of uniform color is to take a block (perhaps 20x20 pixels) that is centered at the pixel you are testing and see if that pixel is within a certain standard deviation of all the pixels in the block. Adjusting these two "knobs" (size of the sample area, and standard deviation threshold) will let you fine tune to your needs. This should highlight edge regions too.