Giter VIP home page Giter VIP logo

multimedia-project's Introduction

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

multimedia-project's People

Contributors

ibrahimhiarea avatar twfek-ajeneh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.