Marvin        Image Processing Framework3KA22
Agenda    Tentang Marvin    Arsitektur    Fitur    Kegunaan    Instalasi    Demonstrasi3KA22
Agenda    Tentang Marvin    Arsitektur    Fitur    Kegunaan    Instalasi    Demonstrasi3KA22
Tentang Mavin    Framework untuk memanipulasi/mengolah    gambar    Open Source dibawah lisensi LGPL    Dikembangkan me...
Agenda    Tentang Marvin    Arsitektur    Fitur    Kegunaan    Instalasi    Demonstrasi3KA22
Arsitektur3KA22
Agenda    Tentang Marvin    Arsitektur    Fitur    Kegunaan    Instalasi    Demonstrasi3KA22
Fitur    Plug-ins    Video Capturing    Multi-threading    Performance Meter    GUI API    Plug-in History3KA22
Fitur – Plugins    Algoritma untuk memanipulasi gambar    diimplementasikan secara eksternal sebagai    sebuah plug-in  ...
Fitur - Video Capturing    Memungkinkan    pengembang untuk    memproses video    secara real-time    Antar muka untuk  ...
Fitur - Multithreading    Mengizinkan pemrosesan beberapa gambar    dalam waktu bersamaan; atau    Membagi premrosesan s...
Fitur – Performance MeterBeberapa algoritma pemrosesan gambar dapat dibagi menjadi beberapa proses.Performance meter mengi...
Fitur - GUI APIMarvin menyediakan antar muka untuk dapat terhubung dengan fitur antar muka grafis.Dengan mengimplementasik...
Fitur - Plug-in History    Pada setiap proses MarvinPluginHistory    menyimpan semua plug-in dan masing-masing    konfigu...
Agenda    Tentang Marvin    Arsitektur    Fitur    Kegunaan    Instalasi    Demonstrasi3KA22
Kegunaan    Pemrosesan gambar dalam jumlah banyak dan    berulang-ulang    Membuat editor yang dapat disesuaikan    kebu...
Kegunaan    Menganalisa performa suatu filter baik    menggunakan performace meter maupun unit    testing pada saat fase ...
Agenda    Tentang Marvin    Arsitektur    Fitur    Kegunaan    Instalasi    Demo3KA22
Instalasi    Masukkan pustaka Marvin Framework kedalam    Java classpath untuk dapat dijalankan pada    saat runtime    ...
Demo3KA22
Pertanyaan?3KA22
Sumberhttp://marvinproject.sf.net/http://marvinproject.sf.net/download/CSIS602.pdfhttp://sourceforge.net/projects/marvinpr...
Upcoming SlideShare
Loading in...5
×

Marvin Image Processing Framework

390

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
390
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Marvin is an extensible, cross-platform and open source image processing framework developed in Java. The framework provides features to: manipulate images; manipulate captured video frames; multithreading image processing; integrate plug-ins with Graphical User Interface(GUI); analyze plug-in performance; extend features via plug-ins; unit test automation; The image processing algorithms are implemend as a plug-in and can be plugged into other plug-ins, thirdy-party applications and the MarvinEditor - an image editing software. Currently, there are 55 plug-ins available for a wide range of different purposes.
  • Marvin is an extensible, cross-platform and open source image processing framework developed in Java. The framework provides features to: manipulate images; manipulate captured video frames; multithreading image processing; integrate plug-ins with Graphical User Interface(GUI); analyze plug-in performance; extend features via plug-ins; unit test automation; The image processing algorithms are implemend as a plug-in and can be plugged into other plug-ins, thirdy-party applications and the MarvinEditor - an image editing software. Currently, there are 55 plug-ins available for a wide range of different purposes.
  • Algorithms to manipulate images are externally implemented as plug-ins. The framework provides an interface to manipulate plug-ins. The following source code loads a gray scale plug-in and processes an image: MarvinImage image = MarvinImageIO.loadImage(“test.jpg”); MarvinPluginImage plugin = MarvinPluginLoader.loadPluginImage("net.sourceforge.marvinproject.color.grayScale.jar"); plugin.process(a_image, a_image, a_null, MarvinImageMask.NULL_MASK, false); Plug-ins are loaded in run-time via reflection. It provides an easy-way to extensibility and allows plug-ins integration. A plug-in to show a gray scale histogram, for example, uses the gray scale plug-in before the histogram generation.
  • Video capturing is provided via Java Media Framework and allows developers to work with real-time video processing. For the plug-ins, the interface to work with videos and images are the same. In the case of videos, plug-ins can store past frames to analize multiple frames. Below is presented a real-time video filtering.
  • Marvin allows the processing of multiple images at the same time or the same image processed by multiple threads. Image processing plug-ins receive an image to be processed and a mask containing what pixels must be considered. Thus, different threads can work in the same image in different image´s segment, illustrated as folow:
  • Many image processing algorithms can be divided in few processes. An algorithm, for example, may be divided in five processes to find and segment the interest points of an image: representing the image in gray scale, border detection, binarization, Harris/Plassey application, render red points representing interest points. Each process has a different computational cost and the performance meter allows developers to analyze the performance of the entire algorithm and their processes individually, considering the number of steps and the execution spent time. Thus, it is possible a better understanding of the algorithm performance and facilitates optimizations, since is visible what algorithm processes are costly and most interesting to be optimized. Another performance meter application is to determine the complexity of an algorithm, Big-O notation, analyzing the number of steps executed for different image resolution. The image below presents the informations provided by the performance meter for the plug-in "Interest points".
  • The plug-ins can have user specified attributes that determines how it works and the Marvin framework provides features to integrate a GUI (Graphical User Interface) with these attributes. The Plug-in developer sets the relation between the plug-in attributes and the interface components, added to the plug-in window. When the component value is changed, the associated attribute value is changed automatically. The developer does not worry about handling component events or update the attributes. Below are an example of using GUI API: public void show(){ MarvinFilterWindow l_filterWindow = new MarvinFilterWindow("Brightness and Contrast", 400,350, getImagePanel(), this); l_filterWindow.addLabel("lblBrightness", "Brightness"); l_filterWindow.addHorizontalSlider("sliderBrightness", "brightness", -127, 127, 0, attributes); l_filterWindow.addPanelBelow(); l_filterWindow.addLabel("lblContrast", "Contrast"); l_filterWindow.addHorizontalSlider("sliderContrast", "contrast", -127, 127, 0, attributes); l_filterWindow.setVisible(true); } The code above creates a new MarvinFilterWindow that implements a thumbnail and buttons to preview, reset and apply a filter. The buttons preview and reset call the method process implemented in the plug-in. Two horizontal sliders are added to that windows, one associated with the attribute brightness and the other with contrast. The result window is presented below:
  • In some cases to achieve some result in an image, it is necessary to use a few processes. Preparing an image for pattern recognition, for example, in some applications it is interesting to remove noise, increase contrast and emphasize edges. For these cases that multiple processes are used, MarvinPluginHistory stores all plug-ins and their configurations applied to an image. The history can be exported as an image strip containing the configuration and resulting images of each used plug-in. This feature allows an analysis of an entire process considering each step. Other application is the comparison of the same application but with different settings. Below are an example of plug-in history:
  • Memanfaatkan fitur multithreading dapat memaksimalkan kinerja komputer dengan memproses beberapa gambar secara parallel, sangat berguna untuk memanipulasi secara berulang-ulang.
  • Marvin is an extensible, cross-platform and open source image processing framework developed in Java. The framework provides features to: manipulate images; manipulate captured video frames; multithreading image processing; integrate plug-ins with Graphical User Interface(GUI); analyze plug-in performance; extend features via plug-ins; unit test automation; The image processing algorithms are implemend as a plug-in and can be plugged into other plug-ins, thirdy-party applications and the MarvinEditor - an image editing software. Currently, there are 55 plug-ins available for a wide range of different purposes.
  • Marvin Image Processing Framework

    1. 1. Marvin Image Processing Framework3KA22
    2. 2. Agenda Tentang Marvin Arsitektur Fitur Kegunaan Instalasi Demonstrasi3KA22
    3. 3. Agenda Tentang Marvin Arsitektur Fitur Kegunaan Instalasi Demonstrasi3KA22
    4. 4. Tentang Mavin Framework untuk memanipulasi/mengolah gambar Open Source dibawah lisensi LGPL Dikembangkan menggunakan Java Cross-platform Dapat diperluas dengan mengimplementasikan dalam bentuk plug-in3KA22
    5. 5. Agenda Tentang Marvin Arsitektur Fitur Kegunaan Instalasi Demonstrasi3KA22
    6. 6. Arsitektur3KA22
    7. 7. Agenda Tentang Marvin Arsitektur Fitur Kegunaan Instalasi Demonstrasi3KA22
    8. 8. Fitur Plug-ins Video Capturing Multi-threading Performance Meter GUI API Plug-in History3KA22
    9. 9. Fitur – Plugins Algoritma untuk memanipulasi gambar diimplementasikan secara eksternal sebagai sebuah plug-in Marvin menyediakan antar muka untuk dapat diimplementasikan oleh pengembang Plug-in akan dimuat pada saat run-time Sebuah plug-in dapat diintegrasikan dengan plug-in lainnya, marvin editor, maupun sebagai pihak ketiga/pustaka3KA22
    10. 10. Fitur - Video Capturing Memungkinkan pengembang untuk memproses video secara real-time Antar muka untuk memproses video dan gambar adalah sama Dalam kasus video, plug-ins dapat menyimpan frame sebelumnya untuk dapat menganalisa beberapa frame3KA22
    11. 11. Fitur - Multithreading Mengizinkan pemrosesan beberapa gambar dalam waktu bersamaan; atau Membagi premrosesan satu gambar kedalam beberapa thread3KA22
    12. 12. Fitur – Performance MeterBeberapa algoritma pemrosesan gambar dapat dibagi menjadi beberapa proses.Performance meter mengizinkan pengembang untuk menganalisa setiap proses.3KA22
    13. 13. Fitur - GUI APIMarvin menyediakan antar muka untuk dapat terhubung dengan fitur antar muka grafis.Dengan mengimplementasikan GUI API, pengembang tidak perlu mengkhawatirkan penangkapan event komponen.3KA22
    14. 14. Fitur - Plug-in History Pada setiap proses MarvinPluginHistory menyimpan semua plug-in dan masing-masing konfigurasi3KA22
    15. 15. Agenda Tentang Marvin Arsitektur Fitur Kegunaan Instalasi Demonstrasi3KA22
    16. 16. Kegunaan Pemrosesan gambar dalam jumlah banyak dan berulang-ulang Membuat editor yang dapat disesuaikan kebutuhan dengan memanfaatkan plug-in yang telah disediakan Membuat filter dengan arsitektur berorientasi objek mengikuti standart Marvin Plug-in API Memanfaatkan Marvin GUI dan Plug-in API untuk membuat implementasi baru3KA22
    17. 17. Kegunaan Menganalisa performa suatu filter baik menggunakan performace meter maupun unit testing pada saat fase pengembangan3KA22
    18. 18. Agenda Tentang Marvin Arsitektur Fitur Kegunaan Instalasi Demo3KA22
    19. 19. Instalasi Masukkan pustaka Marvin Framework kedalam Java classpath untuk dapat dijalankan pada saat runtime Muat plugin MarvinImagePlugin imagePlugin = MarvinPluginLoader. loadImagePlugin("org.marvinproject.image.color.grayScale.jar") Eksekusi input MarvinImage image = ...; imagePlugin.process(image, image); image.update()3KA22
    20. 20. Demo3KA22
    21. 21. Pertanyaan?3KA22
    22. 22. Sumberhttp://marvinproject.sf.net/http://marvinproject.sf.net/download/CSIS602.pdfhttp://sourceforge.net/projects/marvinproject/3KA22
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×