An awesome README template to jumpstart your projects!
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
Our project focuses on the implementation of various image compression techniques, with a primary emphasis on the JPEG compression algorithm. The key objectives and features of the project are outlined below:
JPEG Algorithm Visualization:
- Display the step-by-step execution of the JPEG image compression algorithm.
- Highlight the following stages: Color space conversion, DCT coefficients before and after quantization, visual representation of DCT coefficients in 3D, selection of - quantization matrices, and evaluation metrics post-compression.
JPEG Image Compression:
- Implement JPEG image compression for both color and grayscale images.
- Provide the flexibility to choose from a range of quantization matrices (Q10-Q100).
DCT-based Denoising Algorithm:
- Develop a denoising algorithm based on Discrete Cosine Transform (DCT).
- Incorporate threshold selection for color and grayscale images.
- For color images, introduce the use of Gaussian Important Map to accelerate denoising.
- Support various noise types such as salt-and-pepper, speckle, and Poisson noise.
- Allow users to adjust thresholds and sliding steps for observation and analysis.
DCT with Median Filter for Grayscale Image Denoising:
- Implement a DCT-based denoising algorithm combined with a median filter.
- Aim to reduce periodic noise in grayscale images.
Through this project, users will gain insights into the inner workings of the JPEG compression algorithm and explore advanced techniques for image denoising. The flexibility provided in parameter selection allows for experimentation and observation of the impact on image quality and compression efficiency.
This section have list any major frameworks/libraries used in this project.
-
Clone the Git repository: Open your terminal and run the following command to clone the repository.
git clone https://github.com/dn-duongnam/compress-jpeg.git
-
Navigate to the project directory:
cd compress-jpeg
-
Install Python requirements: Ensure you have Python and pip installed. Then, run the following command to install the required Python packages.
pip install -r requirements.txt
-
Run the Streamlit app: Execute the following command to run the Streamlit app.
streamlit run app.py
Or
python -m streamlit run app.py
This will start the development server, and you can access the Streamlit app by opening your browser and navigating to the provided URL (usually http://localhost:8501).
Welcome to the Image Processing website! Below is a detailed guide to help you make the most of the features on the platform.
Step 1: Upload Image
- Access the Image Processing website at Link to Your Website.
- You will see a simple interface with the "Upload Image" button. Click on this button to select and upload the image you want to process.
Step 2: Adjust Parameters
- Once the image is successfully uploaded, you will see parameter adjustment options displayed on the interface.
- Options may include choosing a quantization matrix, setting thresholds for the denoising algorithm, and other - parameters depending on the specific features of the website.
Step 3: Process Image
- After adjusting the parameters to your liking, click on the "Process Image" or a similar button.
- The website will proceed to process the image based on the parameters you have selected.
Step 4: Observe Results
- The processed image results will be displayed once the operation is complete.
- You can compare the original and processed images to evaluate the performance of the chosen parameter adjustments.
Note:
- Processing times may vary depending on the size of the image and the complexity of the selected parameters.
Enjoy your experience on our Image Processing website! If you have any questions or feedback, feel free to contact us for assistance.
- JPEG Compression Step
- JPEG for color image, gray image
- DCT Denoising using Threshold
- DCT Denoising using Median Filter
- Mean/Gaussian Important Map for denoising
- Unlimit Height/Width of an image (Now is 512x512)
- Speedup the program
See the open issues for a full list of proposed features (and known issues).
My team:
- Lã Đức Nam - [email protected]
- Phạm Hồng Nghĩa - [email protected]
- Dương Văn Nam - [email protected]
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Lã Đức Nam - [email protected]
Project Link: https://github.com/dn-duongnam/compress-jpeg
Use this space to list resources you find helpful and would like to give credit to. I've included a few of my favorites to kick things off!