Super Artist

Just like studying biophysics in undergrad made me into a super-ninja, studying imaging science has made me into a super-artist.

Most of the stuff I put here is created with Matlab. I would ultimately like to post the code here also.

Sparklers

You know that effect when you take a picture of someone spinning a sparkler, and a big long glowy beautiful line appears in the photo? Well here I have attempted to reproduce the affect.

The idea is I parameterize the motion of a point by a randomly generated time dependent velocity vector. The velocity parameterization is created as the first few terms in a Fourier series with random coefficients. To make the effect prettier, the velocity is raised to a power greater than 1. This acts to make the moving point pause for longer when it is moving slowly, and move faster when it is moving quickly.

Finally the image is created by adding 2 point-spread-functions to a voxel grid at each time point. One is narrow, describing the path, and one is broad, showing a long range glow. And a few such paths are added to make the final image.

Words

Somtimes you just need to see all the words in some text file all at once, displayed with color gradients, and different sizes and blurs. This is a highly functional project. 'nuff said.

To do this I read a text file line by line and group paragraphs together. Then I chose a random x, y, and z (depth) coordinate. From the z coordiate I calculate a size, and write text to an axis at this (x,y) coordinate and fontsize. Then I do a screencapture to rasterize the text.

Next the rasterized image is colored based on its (x,y) position and blured based on its depth. Finally, all the rasterized images are added to one another, and the result is written out to a file.

Cartoons

I can make cartoon looking images from normal images. The idea is to minimize a cost function based on the mean squared distance from the original image, and the "smoothness" of the new image. Smoothness is defined using the integral of the p-norm of the norm of the gradient of the image. As p approaches 1, this should encourage piecewise constant images, which I interpret as cartoonlike.

Detection

A couple years ago in Toronto, our lab was going to have a cover image for some journal so the PI asked everyone to make a pretty picture based on their research. I made (something roughly equivalent to) the background image here. The image corresponds to a realization of a generative probabilistic model of an axial CT slice.

The blue chanel shows an object we're looking for (perhaps a tumour) blurred with the system's modulation transfer function. The red channel shows quantum noise, with its "wormy" (short range correlation long range anticorrelation) texture characteristic of axial CT. The green chanel shows a realization of anatomical clutter (for example regions of fatty vs. glandular tissue), modelled as power law noise with an exponent of roughly 1.5, and blurred with the system's MTF.

The image on the right shows what this would actually look like in a CT scan with a SNR of roughly 1. Note that the image is periodic. This makes it a nice background image, but strictly speaking if I wanted to remove circular correlations I should only use an image half that size in each direction.

Funnyface

What is that funny thing on top anyway? Each frame is a radial bandpass filtered version of my face. The animation oscillates between a low frequency bandpass image and a high frequency bandpass image.