Maxwell Bakalos
12/31/2022
(Personal Project)
Google Drive Link: https://drive.google.com/drive/u/8/folders/1pX9FPfNBxxTfFaG61_FqUqNa2ocdUcmA
YouTube Link: https://youtube.com/playlist?list=PLow3V-UtGcytRPun9l7XUO07yE7ezbuLp
(These programs were written in MATLAB but may be converted to another language such as Python later)
Figure 1 - Image Transform Reconstructor process using the Discrete Cosine Transform
This program takes an existing video as an input and outputs a new video that shows the gradual rebuilding of the original by increasing the number of transform basis signals in each frame as time passes. The highest energy transform basis signals are used first and eventually, all (or a certain percent) of the basis signals are added. They can either be added linearly or exponentially (I find exponential usually looks better). This creates a unique video effect (decompression). The transform options are either the Discrete Cosine Transform (DCT) or the Discrete Wavelet Transform (DWT). Multiple different wavelet shapes (db1 - db45) are available for the DWT.
Similarly the video transform reconstructor, basis signals are slowly added in order from greatest to least energy, however, a single image is used instead of a series of image frames. DCT and DWT are available in the same way.
Instead of doing a 2-dimensional DCT, this program does a 1-dimensional DCT on an audio file. The basis signals are slowly added in order from greatest to least energy. The number of increments can be specified (similar to the number of frames in the video/image reconstructors). The result is an audio file that starts with the most fundamental sounds and gradually progresses to full-quality audio (decompression).
gaussian_noise_rgb_mean0.6_var0.1_160x90_Noise35x70.mp4
Figure 2 - Noise Videos with colored borders
These three programs can either create an audio file, image, or video of random noise. The noise can be gaussian random noise with a specified mean and variance, and a color balance (image/video), or it can be saturated to be only 0 or 1. I have also added the feature that this noise can be bounded either by a certain sine wave frequency (audio) or color (image/video).
Figure 3 - Upscaled media from the noise creators
These programs simply upscale either a single image or each frame of a video by a specified amount. It does not interpolate between the known and unknown pixels in the upsampled image, it simply expands each pixel value into more pixels. This is different from the upsampling a computer usually does to pixelated images which makes them look blurry. It can be used to make pixel art images larger and still retain their pixelated aesthetic. I have created down-scalers (downsamplers) before but I have not yet added that functionality to these programs.
Face_ColoredLights1_256x256.jpg__VIDEO__10_clstrs_L2_loc1.mp4
Figure 4 - Clustered Images (1-7), Original Image (8)
This program takes an image or video as an input and outputs a “clustered” version of the image. It uses the k-Means clustering algorithm on the pixel values of the image to cluster the pixels into groups based on color & position, then the groups are recolored based on the average color of the cluster region. It can also create a video showing an image being built up from an increasing number of clusters.
Figure 5 - Edge detected video frame in each color
This program takes a video as an input and outputs a new video where each frame is an edge-detected version of the previous frame. It can either detect edges in each color or use all colors to detect edges.