SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Marvin
        Image Processing Framework




3KA22
Agenda


    Tentang Marvin

    Arsitektur

    Fitur

    Kegunaan

    Instalasi

    Demonstrasi



3KA22
Agenda


    Tentang Marvin

    Arsitektur

    Fitur

    Kegunaan

    Instalasi

    Demonstrasi



3KA22
Tentang Mavin


    Framework untuk memanipulasi/mengolah
    gambar

    Open Source dibawah lisensi LGPL

    Dikembangkan menggunakan Java

    Cross-platform

    Dapat diperluas dengan mengimplementasikan
    dalam bentuk plug-in



3KA22
Agenda


    Tentang Marvin

    Arsitektur

    Fitur

    Kegunaan

    Instalasi

    Demonstrasi



3KA22
Arsitektur




3KA22
Agenda


    Tentang Marvin

    Arsitektur

    Fitur

    Kegunaan

    Instalasi

    Demonstrasi



3KA22
Fitur


    Plug-ins

    Video Capturing

    Multi-threading

    Performance Meter

    GUI API

    Plug-in History



3KA22
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/pustaka

3KA22
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 frame
3KA22
Fitur - Multithreading


    Mengizinkan pemrosesan beberapa gambar
    dalam waktu bersamaan; atau

    Membagi premrosesan satu gambar kedalam
    beberapa thread




3KA22
Fitur – Performance Meter

Beberapa algoritma
 pemrosesan gambar
 dapat dibagi menjadi
 beberapa proses.
Performance meter
 mengizinkan
 pengembang untuk
 menganalisa setiap
 proses.


3KA22
Fitur - GUI API

Marvin menyediakan antar
 muka untuk dapat terhubung
 dengan fitur antar muka
 grafis.
Dengan mengimplementasikan
 GUI API, pengembang tidak
 perlu mengkhawatirkan
 penangkapan event
 komponen.


3KA22
Fitur - Plug-in History


    Pada setiap proses MarvinPluginHistory
    menyimpan semua plug-in dan masing-masing
    konfigurasi




3KA22
Agenda


    Tentang Marvin

    Arsitektur

    Fitur

    Kegunaan

    Instalasi

    Demonstrasi



3KA22
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 baru

3KA22
Kegunaan


    Menganalisa performa suatu filter baik
    menggunakan performace meter maupun unit
    testing pada saat fase pengembangan




3KA22
Agenda


    Tentang Marvin

    Arsitektur

    Fitur

    Kegunaan

    Instalasi

    Demo



3KA22
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
Demo




3KA22
Pertanyaan?




3KA22
Sumber

http://marvinproject.sf.net/
http://marvinproject.sf.net/download/CSIS602.pdf
http://sourceforge.net/projects/marvinproject/




3KA22

Weitere ähnliche Inhalte

Ähnlich wie Marvin Image Framework

Panduan Praktikum Pemrograman Sistem Jaringan
Panduan Praktikum Pemrograman Sistem JaringanPanduan Praktikum Pemrograman Sistem Jaringan
Panduan Praktikum Pemrograman Sistem JaringanI Putu Hariyadi
 
Proses Pengembangan Perangkat Lunak (SDLC)
Proses Pengembangan Perangkat Lunak (SDLC)Proses Pengembangan Perangkat Lunak (SDLC)
Proses Pengembangan Perangkat Lunak (SDLC)Rasyeda Aufa
 
Komparasi DevSecOps dan Gartner.pdf
Komparasi DevSecOps dan Gartner.pdfKomparasi DevSecOps dan Gartner.pdf
Komparasi DevSecOps dan Gartner.pdfCreativePreneur
 
Tugas 1 rekayasa web
Tugas 1 rekayasa webTugas 1 rekayasa web
Tugas 1 rekayasa webPrimada P
 
Wida nursyahidah 6701140054_pis1405_tugas apsi
Wida nursyahidah 6701140054_pis1405_tugas apsiWida nursyahidah 6701140054_pis1405_tugas apsi
Wida nursyahidah 6701140054_pis1405_tugas apsiuwidd
 
Aplikasi software
Aplikasi softwareAplikasi software
Aplikasi softwareIchsanvoc
 
Analisis Kebutuhan Sofware Windows Server 2008
Analisis Kebutuhan Sofware Windows Server 2008Analisis Kebutuhan Sofware Windows Server 2008
Analisis Kebutuhan Sofware Windows Server 2008krnlhm
 
Windows server 2008
Windows server 2008Windows server 2008
Windows server 2008senowww_
 
Membangun Aplikasi SMS dengan Gammu dan PHP Framework CodeIgniter
Membangun Aplikasi SMS dengan Gammu dan PHP Framework CodeIgniterMembangun Aplikasi SMS dengan Gammu dan PHP Framework CodeIgniter
Membangun Aplikasi SMS dengan Gammu dan PHP Framework CodeIgniterBeni Krisbiantoro
 
Analisa Kebutuhan Windows 2008
Analisa Kebutuhan Windows 2008Analisa Kebutuhan Windows 2008
Analisa Kebutuhan Windows 2008Ichsanvoc
 
Analisa Kebutuhan Windows 2008
Analisa Kebutuhan Windows 2008Analisa Kebutuhan Windows 2008
Analisa Kebutuhan Windows 2008Ichsanvoc
 
Analisa Kebutuhan Windows 2008
Analisa Kebutuhan Windows 2008Analisa Kebutuhan Windows 2008
Analisa Kebutuhan Windows 2008Ichsanvoc
 
MikroTik RouterOS Security Automation With Ansible
MikroTik RouterOS Security Automation With AnsibleMikroTik RouterOS Security Automation With Ansible
MikroTik RouterOS Security Automation With AnsibleI Putu Hariyadi
 
Analisis Kebutuhan Server 2008
Analisis Kebutuhan Server 2008Analisis Kebutuhan Server 2008
Analisis Kebutuhan Server 2008Bintang Pratama
 
Analis kebutuhan server
Analis kebutuhan serverAnalis kebutuhan server
Analis kebutuhan serverBayu Dhani
 
Ppt java
Ppt javaPpt java
Ppt javamutianb
 
JENI-Intro1-Bab02-Pengenalan Bahasa Java.pdf
JENI-Intro1-Bab02-Pengenalan Bahasa Java.pdfJENI-Intro1-Bab02-Pengenalan Bahasa Java.pdf
JENI-Intro1-Bab02-Pengenalan Bahasa Java.pdfJurnal IT
 
Modul v pengenalan mikrotik
Modul  v pengenalan mikrotikModul  v pengenalan mikrotik
Modul v pengenalan mikrotikCandra Adi Putra
 

Ähnlich wie Marvin Image Framework (20)

Panduan Praktikum Pemrograman Sistem Jaringan
Panduan Praktikum Pemrograman Sistem JaringanPanduan Praktikum Pemrograman Sistem Jaringan
Panduan Praktikum Pemrograman Sistem Jaringan
 
Proses Pengembangan Perangkat Lunak (SDLC)
Proses Pengembangan Perangkat Lunak (SDLC)Proses Pengembangan Perangkat Lunak (SDLC)
Proses Pengembangan Perangkat Lunak (SDLC)
 
Komparasi DevSecOps dan Gartner.pdf
Komparasi DevSecOps dan Gartner.pdfKomparasi DevSecOps dan Gartner.pdf
Komparasi DevSecOps dan Gartner.pdf
 
Tugas 1 rekayasa web
Tugas 1 rekayasa webTugas 1 rekayasa web
Tugas 1 rekayasa web
 
Wida nursyahidah 6701140054_pis1405_tugas apsi
Wida nursyahidah 6701140054_pis1405_tugas apsiWida nursyahidah 6701140054_pis1405_tugas apsi
Wida nursyahidah 6701140054_pis1405_tugas apsi
 
Aplikasi software
Aplikasi softwareAplikasi software
Aplikasi software
 
Analisis Kebutuhan Sofware Windows Server 2008
Analisis Kebutuhan Sofware Windows Server 2008Analisis Kebutuhan Sofware Windows Server 2008
Analisis Kebutuhan Sofware Windows Server 2008
 
Windows server 2008
Windows server 2008Windows server 2008
Windows server 2008
 
2. prosedur pbo
2. prosedur pbo2. prosedur pbo
2. prosedur pbo
 
Membangun Aplikasi SMS dengan Gammu dan PHP Framework CodeIgniter
Membangun Aplikasi SMS dengan Gammu dan PHP Framework CodeIgniterMembangun Aplikasi SMS dengan Gammu dan PHP Framework CodeIgniter
Membangun Aplikasi SMS dengan Gammu dan PHP Framework CodeIgniter
 
Aplikasi software
Aplikasi softwareAplikasi software
Aplikasi software
 
Analisa Kebutuhan Windows 2008
Analisa Kebutuhan Windows 2008Analisa Kebutuhan Windows 2008
Analisa Kebutuhan Windows 2008
 
Analisa Kebutuhan Windows 2008
Analisa Kebutuhan Windows 2008Analisa Kebutuhan Windows 2008
Analisa Kebutuhan Windows 2008
 
Analisa Kebutuhan Windows 2008
Analisa Kebutuhan Windows 2008Analisa Kebutuhan Windows 2008
Analisa Kebutuhan Windows 2008
 
MikroTik RouterOS Security Automation With Ansible
MikroTik RouterOS Security Automation With AnsibleMikroTik RouterOS Security Automation With Ansible
MikroTik RouterOS Security Automation With Ansible
 
Analisis Kebutuhan Server 2008
Analisis Kebutuhan Server 2008Analisis Kebutuhan Server 2008
Analisis Kebutuhan Server 2008
 
Analis kebutuhan server
Analis kebutuhan serverAnalis kebutuhan server
Analis kebutuhan server
 
Ppt java
Ppt javaPpt java
Ppt java
 
JENI-Intro1-Bab02-Pengenalan Bahasa Java.pdf
JENI-Intro1-Bab02-Pengenalan Bahasa Java.pdfJENI-Intro1-Bab02-Pengenalan Bahasa Java.pdf
JENI-Intro1-Bab02-Pengenalan Bahasa Java.pdf
 
Modul v pengenalan mikrotik
Modul  v pengenalan mikrotikModul  v pengenalan mikrotik
Modul v pengenalan mikrotik
 

Marvin Image Framework

  • 1. Marvin Image Processing Framework 3KA22
  • 2. Agenda  Tentang Marvin  Arsitektur  Fitur  Kegunaan  Instalasi  Demonstrasi 3KA22
  • 3. Agenda  Tentang Marvin  Arsitektur  Fitur  Kegunaan  Instalasi  Demonstrasi 3KA22
  • 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-in 3KA22
  • 5. Agenda  Tentang Marvin  Arsitektur  Fitur  Kegunaan  Instalasi  Demonstrasi 3KA22
  • 7. Agenda  Tentang Marvin  Arsitektur  Fitur  Kegunaan  Instalasi  Demonstrasi 3KA22
  • 8. Fitur  Plug-ins  Video Capturing  Multi-threading  Performance Meter  GUI API  Plug-in History 3KA22
  • 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/pustaka 3KA22
  • 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 frame 3KA22
  • 11. Fitur - Multithreading  Mengizinkan pemrosesan beberapa gambar dalam waktu bersamaan; atau  Membagi premrosesan satu gambar kedalam beberapa thread 3KA22
  • 12. Fitur – Performance Meter Beberapa algoritma pemrosesan gambar dapat dibagi menjadi beberapa proses. Performance meter mengizinkan pengembang untuk menganalisa setiap proses. 3KA22
  • 13. Fitur - GUI API Marvin menyediakan antar muka untuk dapat terhubung dengan fitur antar muka grafis. Dengan mengimplementasikan GUI API, pengembang tidak perlu mengkhawatirkan penangkapan event komponen. 3KA22
  • 14. Fitur - Plug-in History  Pada setiap proses MarvinPluginHistory menyimpan semua plug-in dan masing-masing konfigurasi 3KA22
  • 15. Agenda  Tentang Marvin  Arsitektur  Fitur  Kegunaan  Instalasi  Demonstrasi 3KA22
  • 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 baru 3KA22
  • 17. Kegunaan  Menganalisa performa suatu filter baik menggunakan performace meter maupun unit testing pada saat fase pengembangan 3KA22
  • 18. Agenda  Tentang Marvin  Arsitektur  Fitur  Kegunaan  Instalasi  Demo 3KA22
  • 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

Hinweis der Redaktion

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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:
  6. 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".
  7. 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:
  8. 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:
  9. Memanfaatkan fitur multithreading dapat memaksimalkan kinerja komputer dengan memproses beberapa gambar secara parallel, sangat berguna untuk memanipulasi secara berulang-ulang.
  10. 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.