Skip to content

An image processing application that does, gaussian blur, sharpening, unsharpening and edge detection on an image.

License

Notifications You must be signed in to change notification settings

marwanthestudent/Image_processing_tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image_processing_tool

A multi-threaded image processing application that does sharpening and edge detection on a PNG using highpass and Sobel filtering. Can be run using 1,2,4,8,16,32 threads for more efficient processing. It creates a copy of the original with the filters applied and DOES NOT alter the original image.

Features

  • Sharpen: Sharpen outlines in a PNG.
  • Edge detect: Finds the boundaries of a PNG.
  • Multi-Threaded: Use more threads for faster results (depending on your CPU).

Installation

  1. Clone the repository:

    git clone https://github.com/marwanthestudent/Image_processing_tool.git
  2. Install dependencies: Ensure you have C installed with the required libraries (libpng, zlib):
    For more info -> http://www.libpng.org/pub/png/libpng.html
    If you have a package manager like homebrew or pacman (whatever your OS and manager is)

    homebrew install libpng
  3. Compilation path: Ensure you have the directory libpng16 in your include path so the header file can be recognized (include <png.h>).

     -I<whatever location the include directory is in>

    Check Makefile for more comments.

  4. Linker path: Ensure that the linker has the path to require files

     -L<whatever location libpng is in> -lpng16 -lz

    Check Makefile for more comments.

Usage

  1. Running the executable:
    ./image_process <relative path of image> <relative path and name desired of output> <edge, sharpen> <No of threads: 1,2,4,8,16,32 >

Example Output

An example of how the output would look using the example imgs folder:

Original PNG Output PNG after edge detection
Original PNG Output PNG after sharpening

Additional Notes

There is a TROFF manual I made in the manual directory so the program can feel more like a command (mainly for learning purposes)

Screenshot from terminal

To display it, move image_process.1 to your manual's folder (in super user), for me it was

sudo mv image_process.1 /usr/Local/share/man/man1

Then from the terminal you can display the manual by simply

man Image_process

Future Work

  • Implement Gaussian blurring and Unsharp. I had trouble debugging so I did not include this feature in the current version.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

An image processing application that does, gaussian blur, sharpening, unsharpening and edge detection on an image.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published