This semester, I’m teaching a project-based course that allows students to design their projects. Students frequently request access to past project reports to gauge appropriate project scope and complexity. However, I’m hesitant to provide these, as they might constrain students’ creativity and limit their choices.

The rise of generative AI (GenAI) in recent years necessitates that we explore its potential to assist students. However, many lack the necessary background to utilize these tools effectively. How can we integrate GenAI to foster the development of interesting mathematical projects? What are some potential project ideas, considering the course requirements and my mathematical expertise? These are likely the first questions many students will ask when faced with a term project.

To address this, I recently experimented with GenAI to generate project ideas. The brainstorming process involved using the Gemini-1.5-Flash chatbot on Poe.com. The projects described below are the result of this collaboration.

Can you give me five creative and interesting math major projects in image processing based on techniques like averaging and looping? For each of the project, give me a short abstract too.

Here are the outputs from the GenAI,

Here are five creative and interesting math major projects in image processing based on averaging and looping techniques, each with a short abstract:

Project 1: Stylized Image Averaging and Blending

  • Abstract: This project explores the creation of stylized image effects through the weighted averaging of multiple images. The algorithm will involve looping through pixel data, applying different weighting schemes (e.g., Gaussian weighting for blurring, or custom weights for artistic effects), and blending the averaged results to produce unique visual styles. The project will investigate the mathematical properties of different weighting functions and their impact on the final image quality and aesthetic appeal. The user will be able to adjust parameters to control the level of blending and the type of stylistic effect achieved.
  • Project Description: This project focuses on developing an algorithm that takes multiple images as input and produces a stylized output image. The core idea is to perform a weighted average of the pixel values across all input images. The weights can be constant, creating a simple average, or they can be varied to achieve different effects. For example, a Gaussian weighting function could be used to create a blurred effect, while a more complex weighting scheme could be designed to produce artistic styles like impressionism or pointillism. The algorithm will involve nested loops to iterate through the pixels of each image, calculate the weighted average for each pixel, and then combine the results into a single output image. The user interface will allow the user to select multiple images, adjust the weighting scheme, and view the resulting stylized image in real-time.

Project 2: Image Enhancement using Iterative Averaging Filters

  • Abstract: This project investigates the application of iterative averaging filters for image enhancement. The project will implement and compare different averaging filter types (e.g., box filter, Gaussian filter) and explore their effects on noise reduction and edge preservation. The iterative application of these filters will be analyzed, focusing on the convergence properties and the trade-off between noise reduction and detail loss. The effectiveness of the approach will be evaluated using quantitative metrics (e.g., PSNR, SSIM) and qualitative visual assessment.
  • Project Description: This project will explore the use of iterative averaging filters for image enhancement. The core idea is to repeatedly apply an averaging filter to an image to reduce noise. The project will implement several different averaging filters, such as the box filter and the Gaussian filter. The iterative process involves applying the chosen filter to the image multiple times. Each iteration will reduce noise, but it will also blur the image slightly. The project will investigate the trade-off between noise reduction and image blurring by experimenting with different filter sizes, iteration counts, and filter types. Quantitative metrics such as Peak Signal-to-Noise Ratio (PSNR) and Structural Similarity Index (SSIM) will be used to evaluate the performance of the different filters.

Project 3: Loop-Based Fractal Image Generation

  • Abstract: This project explores the generation of fractal images using iterative loops and simple mathematical functions. The project will implement different fractal generation algorithms (e.g., Mandelbrot set, Julia set) and investigate the impact of parameter changes on the resulting image patterns. The project will also explore techniques for colorizing and enhancing the generated fractal images. The mathematical foundations of fractal geometry will be explored, emphasizing the role of iteration and complex numbers.
  • Project Description: This project will focus on generating fractal images using iterative loops and mathematical functions. The core idea is to use a loop to repeatedly apply a mathematical function to a complex number. The result of each iteration is used as the input for the next iteration. By plotting the results of these iterations, we can generate a fractal image. The project will implement the Mandelbrot set and Julia set algorithms, which are two classic examples of fractal generation algorithms. Users will be able to adjust parameters to control the appearance of the fractal, such as the number of iterations, the range of complex numbers, and the color scheme.

Project 4: Image Compression using Averaging and Quantization

  • Abstract: This project investigates a simple image compression technique based on averaging and quantization. The image will be divided into blocks, and the average pixel value within each block will be calculated. These average values will then be quantized to reduce the number of bits required for storage. The project will explore the effect of block size and quantization levels on the compression ratio and image quality. The trade-off between compression and reconstruction error will be analyzed.
  • Project Description: This project will explore a simple lossy image compression technique. The image will be divided into blocks of pixels. For each block, the average pixel value (R, G, B) will be calculated. These average values will then be quantized, meaning that the number of possible values for each color channel will be reduced. This reduces the amount of data needed to store the image. The project will investigate the effect of the block size and the number of quantization levels on the compression ratio and the quality of the reconstructed image.

Project 5: Edge Detection using Averaging and Difference Operators

  • Abstract: This project explores edge detection in images using a combination of averaging and difference operators. The project will implement a smoothing filter (e.g., Gaussian filter) to reduce noise, followed by a difference operator (e.g., Sobel operator) to detect edges. The project will investigate the effect of different filter sizes and parameters on edge detection accuracy and robustness to noise. The performance of the algorithm will be evaluated using quantitative metrics and visual assessment.
  • Project Description: This project will implement an edge detection algorithm that combines smoothing and difference operations. First, a smoothing filter (like a Gaussian filter) will be applied to the image to reduce noise. Then, a difference operator (like the Sobel operator) will be applied to detect edges by calculating the gradient of the smoothed image. The project will explore the effect of different filter parameters (size, standard deviation for Gaussian) on the quality of edge detection. The results will be evaluated visually and using metrics like the number of correctly detected edges and the precision/recall of the edge detection.

Remember to choose a project that aligns with your interests and available resources. Each project can be expanded upon significantly depending on the desired level of complexity and depth of analysis. Consider adding features like user interfaces, performance optimizations, and comparisons with existing algorithms to make the project more substantial.

These project ideas seem quite nice. From my experience, GenAI’s potential will only be realized by effectively communicating with it. To do so, we need to emphasize the project’s practical applications and outline specific techniques for implementation. This will provide a clear path toward project completion.