This NestJS application implements core image processing algorithms that are divided into three sections.
- Basic Processing Algorithms
- Greyscale
- Negative
- Resize
- Rotate
- Sharpen
- Contrast
- Emboss
- Image Enhancement Algorithms
- Flood-fill
- Histogram equalization
- Feature Detection Algorithms
- Canny Edge Detection
- Harris Corner Detection
This code contains deliberately planted logical errors that produce visual anomalies without causing compilation failures.
Your task is to find and fix all logical bugs in the codebase, and demonstrate how your fixes improve the output images. Success requires not just coding skills, but a deep understanding of image processing fundamentals and the ability to trace algorithm execution when results don't match expectations.
$ npm install# run main service
$ npm start cse40
# run basic-processing service
$ npm run start:basic-processing
# run enhancement service
$ npm run start:enhancement
# run feature-detection service
$ npm run start:feature-detectionTo access the Swagger API Documentation:
http://localhost:3000/api
The Swagger UI provides interactive documentation for testing all available endpoints and viewing request formats.
| Operation | Reference |
|---|---|
| Greyscale Operation | RGB to Grayscale Conversion |
| Contrast Operation | Algorithms for Adjusting Brightness and Contrast |
| Emboss Operation | Refer Image Embossing Wikipedia article for proper implementation. You should use the specific enlarged kernel to control the depth of edges mentioned in the article. |
| Flood Fill Operation | Flood Fill Algorithm to get an idea on how to implement. Note that pixel at position (400,250) is used as the reference point for flood filling and the pixels should be updated with Red color. |
| Canny Edge Detection | Canny Edge Detection Step by Step |
