My approach to symbol recognition of Chinese numerals uses techniques well established in digital image processing, including black/white conversion, digital binary morphology, pixel histograms for line counting, Zhang-Suen thinning for skeletonization, and other simple techniques such as median filtering. These techniques are combined to form a feature extraction algorithm. Once features are identified simple table lookups are preformed for number recognition. The table is constructed from known features in each of the non-complex and common Chinese numerals.
This project also implements basic image processing algorithms, including point and neighborhood operations. [More]
Ray tracing is an essential subject when it comes to computer graphics. It combines issues of efficiency and realism, thus finding a favorable balance of the time and effort involved to make realistic three dimensional images. In the process of researching the many different ways of implementing a ray tracer, the study began with local illumination and graduated to global illumination, using some pre-established techniques and the development of new techniques. [More]
Marklar is built around three basic types: Marklars, strings and numbers. A Marklar is a set with methods and has four basic subtypes: Ordered Marklars, Ordered Conformist Marklars, Unordered Marklars and Unordered Conformist Marklars. Ordered Marklars have arrays and Unordered Marklars have hash tables. Extended Marklars override or add methods to the base Marklar types. Furthermore, Marklar has purely procedural methods, including the main() method which is the default entry point. [More]
This is my implementation of an SQL engine during an undergraduate direct independent study, spring 2003. I used Flex and Bison to define the SQL grammar and parser generation. Inner joins were implemented with conditional predicates. I called my engine Object Oriented because I envisioned the engine storing and manipulating objects: images, sound, graphs, etc. The internal API was extensible to allow for other objects and manipulation algorithms. For example, store and manipulated images files with an image processing algorithm. In one semester's time I was only able to implement the base SQL engine, image viewing, and graph generation based on table data. [More]