Skip to content

A university project on image quantization algorithms and the use of these algorithms in searches for similar images

Notifications You must be signed in to change notification settings

IbrahimHiarea/Multimedia-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multimedia JavaFX Project

This project is a JavaFX application that allows users to perform various image quantization algorithms on an input image. It provides functionalities such as applying quantization algorithms like Median Cut, Floyd-Steinberg, K-means, and Octree. Additionally, it allows users to create an index image, display the color palette and color histogram, and save the resulting images. The project also includes a feature that enables users to search for similar images among multiple folders.

Features

Image Quantization

The project offers the following image quantization algorithms:

  1. Median Cut: This algorithm divides the color space recursively into smaller boxes, representing the color palette. It selects representative colors from each box to form the final palette.

  2. Floyd-Steinberg: This algorithm diffuses the quantization error resulting from reducing the color space. It distributes the error to neighboring pixels, producing a visually pleasing dithered effect.

  3. K-means: This algorithm clusters the colors in the image using the K-means clustering technique. It iteratively assigns each pixel to the nearest cluster centroid and recalculates the centroids until convergence.

  4. Octree: This algorithm builds an octree data structure to represent the color space. It recursively splits the octree nodes based on the color distribution and selects representative colors from the leaf nodes.

Index Image Creation

The project allows users to create an index image, which is a visualization of the color palette used in quantization. It provides a graphical representation of the colors present in the image after applying the selected quantization algorithm.

Color Palette Display

Users can view the color palette generated by the quantization algorithm. The color palette showcases the representative colors that will be used to represent the image after quantization.

Color Histogram

The application provides a color histogram, which displays the distribution of colors in the input image. It visualizes the frequency of each color present in the image, giving insights into the color composition.

Result Saving

Users have the option to save the resulting images after applying the quantization algorithm. The saved images can be used for further analysis or sharing with others.

Image Search

The project includes a search feature that allows users to find similar images. Users can select an image and search for similar images across multiple folders. This feature helps in finding related images and organizing them efficiently.

The image search based on color histograms. After applying the quantization algorithms from Section 1 to the images, the project aims to find similar images within a specific folder. This is achieved by comparing the color histograms of the images using histogram-based similarity metrics.

  • Quantization Image Algorithms: The project implements Median Cut, K-means, Floyd Steinberg, and Octree algorithms for color quantization, reducing the complexity of images while maintaining visual quality.
  • Color Histogram Comparison: The project uses color histograms to compare images and determine their similarity based on histogram-based similarity metrics.
  • Image Search: Given a specific folder of provided images, the project enables searching for similar images by comparing color histograms.
  • Image Processing: The project performs image processing tasks, including color quantization and histogram generation, to facilitate image search and analysis.
  • User Interface: The project may include a user-friendly interface allowing users to input images, select algorithms, and visualize results.

Installation

To run the multimedia JavaFX project, follow these steps:

  1. Clone the project repository from GitHub.

  2. Open the project in your preferred Java development environment (e.g., IntelliJ, Eclipse).

  3. Resolve any dependencies required for the project, such as JavaFX libraries.

  4. Build the project and ensure that there are no compilation errors.

  5. chabge the path of saving files.

  6. Run the application, and the JavaFX GUI will appear.

  7. Use the GUI to perform image quantization, create an index image, display the color palette and histogram, and save the results.

Preview

image1

image12

image2

About

A university project on image quantization algorithms and the use of these algorithms in searches for similar images

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages