![]() ![]() I got very different results from the website if I followed the paper's example and very different results from the paper if I tried to imitate the website's orapple. I implemented my laplacian stacks, the mask, and used linear interpolation to 'seam' them together, but I found that I think I may have gotten a bit lost on this step. I wonder if it's because I used sigma = 10 (to act as the cutoff frequency) for my hybrid images that I did for the Gaussian stacks (a 'normal' sigma of 1). I know that the cholla tree was low frequency and the methuselah tree was the high frequency portion, so the fact that I can see a little bit more ofĮach respective tree in their stack isn't too surprising, but what does surprise me is how embedded they are and difficult to reverse once they've been Gaussian and Laplacian stacks that revealed the Mona Lisa's hidden low frequency and high frequency 'subimages'. These images were 'unhybridized' by using the same ![]() She always looks like she's smirking while looking at the viewer to me.Īnd now, a return the Methuselah/cholla trees from earlier. I don't know if this is because I can't really step back from my desk (I'm up against a corner wall in my room),īut I don't really see the smile/frown or the shift in her eyes. One fun thing about breaking an image into its low and high frequency portions is that we can see different 'expressions' I think the horizon/edges were too powerful to move this one very much.įun with frequencies 2.1- Image "sharpening" I initially used a degree window, but too many images ended up flipping upside down or to the left/right, so I narrowed the window to and got much better results.īest rotation histogram- note the increase in angles at -180 -90, 0, 90, 180 Using the angle of the gradients at edges above a certain threshold, we can 'score' images based on their number of horizontal/vertical edges to straighten something that's crooked. ![]() The gradient points in the direction of the most rapid change and the magnitude is the 'intensity' of that change. Where high values indicate a large change and low values indicate little change. The computation of the gradient magnitude was to square all dx terms and square all dy terms, then sum them together and take the square root of that. I know a lot of information is lost the higher I make the magnitude threshold, but the denoising of the gaussian filter and high threshold produces such nice, crisp, bold edges that I can't resist it! The binarized Gaussian edge image looks amazing (to me). Gaussian convolved with Dy -> DoGy operator -> convolve with original imageįor completeness's sake, here are the edges after being convolved with the derivative of Gaussian filter: Gaussian convolved with Dx -> DoGx operator -> convolve with original image Here are the original images convolved with the derivative of the Gaussian: This means you can get the same results as above with just one convolution of the original image instead of two. The nice thing about convolutions is that they're associative, which means a derivative of the Gaussian filterĬan be precomputed so it doesn't have to convolve with every image twice. Original image convolved with dx -> dx image -> convolved with Gaussian ![]()
0 Comments
Leave a Reply. |