Image-based rug patterns

We were working on a project where some DCT coefficients of an image were extracted and used as recognition features in a statistical classifier. The set of coefficients producing best results in the application were contained in a triangular area bounded by two lines of lengthn along the coordinate axes and a diagonal line at 45 ◦ angle. We figured that rotating the image 45 ◦ before computing the DCT would rotate the DCT coefficients in the frequency domain so that the features of interest would now be located in a square region with sides of lengthn/ √ 2 aligned with the axes and a corner at the origin. Rotating an image by an arbitrary angle requires an interpolation scheme, where each destination pixel value is computed as a linear combination of source pixels, and a rule to assign color to the pixels in the four corners of the bounding square. It turns out that for a 45◦ rotation a very simple interpolation scheme without multiplications can be used. To prevent Guibbs artifacts, continuity needs to be enforced along image boundaries when corner pixel color are assigned. Mirroring along image boundaries solves this problem. The recursive evaluation of the resulting algorithm (explained in detail in the next paragraph) turned out to produce the kind of images that you see on this page.