From the Lab
Bernard Llanos's blog
Image representation with stipples and other shapes - Conclusion
Bernard Llanos — December 18, 2016 - 4:00pm
This is the final post concerning my undergraduate honours project (course code COMP 4905) for Fall 2016.
It was an interesting project to work on, for several reasons:
Selecting superpixels according to salience or filter residuals
Bernard Llanos — November 18, 2016 - 6:36pm
I extended my superpixel filtering module so that it accepts an arbitrary input image representing pixel scores. Lighter pixels (lightness in the CIE L*a*b* colour space) are interpreted as more strongly preferring stippled rendering, whereas darker pixels are interpreted as more strongly preferring smooth rendering. The filter determines the average lightness value within each superpixel. Finally, it performs Otsu thresholding on the average lightness values to classify superpixels into two groups: Those which will be stippled, and those which will be rendered with smoothed colours only.
Consequently, I was free to experiment with a wide variety of methods for selecting superpixels for stippling or smooth rendering, without having to implement these methods.
Blending stipples and superpixels in colour
Bernard Llanos — November 13, 2016 - 4:26pm
As is evident in my last post, colour images are far more attractive in general than greyscale images.
Consequently, I adjusted the process for blending stipples with superpixels to incorporate colour channels as well as the CIE L*a*b* lightness channel.
Simple combinations of superpixels and stipples
Bernard Llanos — November 4, 2016 - 2:52pm
Having implemented structure preserving stippling [1] and SLIC [2], I can now explore using the two techniques together.
Simple Linear Iterative Clustering (SLIC) for image segmentation
Bernard Llanos — October 22, 2016 - 3:38pm
In the full image stylization process, areas with high-frequency texture will be approximated by stipples, whereas areas with lower-frequency texture will be approximated by closed shapes. To create the closed shapes and decide how the image is to be divided into regions, each containing pixels with similar properties, I need an image segmentation algorithm.
For now, I have chosen Simple Linear Iterative Clustering (SLIC) [1] as the segmentation algorithm. SLIC is efficient and produces regions which adhere well to edges in the image. Moreover, it is not overly difficult to implement.
Replicating structure-preserving stippling (II)
Bernard Llanos — October 9, 2016 - 1:42pm
Following up on my previous post. I am pleased to provide some stippling results from a debugged implementation.
Replicating structure-preserving stippling
Bernard Llanos — October 6, 2016 - 5:35am
I have tentatively replicated the stippling algorithm of Dr. Hua Li and Dr. David Mould described here.
The implementation of the algorithm itself was straight-forward. I am grateful that the method was so clearly described in the article.
A Qt-based environment for image processing algorithms
Bernard Llanos — September 29, 2016 - 7:35am
During the previous week, I expanded the functionality of the small Qt-based graphical application that will serve as the environment for image processing algorithms.
Image representation with stipples and other shapes - Introduction
Bernard Llanos — September 21, 2016 - 9:51pm
This and the following blog posts describe my undergraduate honours project (course code COMP 4905) for Fall 2016.
Leaky Integration Part 4 - Adaptive Mask Termination
Bernard Llanos — August 19, 2013 - 3:22pm
Method
Implementing some of the ideas discussed in my previous post (http://gigl.scs.carleton.ca/node/545), I created a version of the leaky integration cumulative range geodesic filter which provides great flexibility for adaptive mask termination. The filter program uses the following algorithm for adaptive mask termination: