PB Lite

by Eli Bosworth (eboswort)


The first step to my Pb-Lite edge detection is to create the filters and masks that get used in later steps, these are my filters and masks:


Next I filter the image with all of the filters I created and use K-means to cluster the pixels of the image into textures based on their responses to those filters. I fooled around with how many different textures to use and found it worked pretty well with around 30. Here's an example of what one of those looks like:'

I ran that image through a function which filtered it with each of the masks that were generated earlier and gets an idea of how much the distribution of textures is changing at any given pixel. That ends up looking like this:

I also split the image into color channels and filtered those with the masks as well to see how much the color channels brightnesses were changing across each pixel in each color. I then added those results together to get how much the final color was changing. This turned out to be a little better than just using a greyscale image. It produced something that looks like this:

Finally I combined the texture gradient and the color/brightness gradient with a canny edge detection to produce my final result: