歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java開源圖像處理框架Marvin介紹

Java對圖像的處理框架比較少,目前比較流行的有Jmagick以及Marvin,但Jmagick只能處理圖像(上篇Java清除圖片中的惡意信息(利用Jmagick)中對Jmagick已做過簡略介紹 見 http://www.linuxidc.com/Linux/2011-11/46611.htm),而Marvin不但可以處理圖像,而且可以集成各種插件,操作視頻,攝像頭來達到各種效果。

Marvin 是一個Java開發的可擴展的圖像處理框架,該框架主要提供以下幾方面的功能:

  • 基本圖像操作;
  • 從視頻中捕獲幀;
  • 多線程的圖像處理;
  • 通過GUI界面集成插件;
  • 插件性能分析;
  • 通過插件進行功能擴展。

授權協議: GPL

開發語言: Java

操作系統: 跨平台 

項目主頁: http://marvinproject.sourceforge.net/en/index.html

目前插件提供的效果:

藝術化(馬塞克,電視效果)、模糊、紋理、分割、變形、渲染、圖案、直方圖、邊緣檢測等等,

具體參考:http://marvinproject.sourceforge.net/en/plugins.html

截個電視效果的圖大家看下:

使用方法:

1. 下載MarvinFramework_1.3.1(圖像處理框架)和JMF1.2(Java媒體處理框架)

2. 將marvin_1.3.1.jar拷貝到你的lib目錄,marvin整個文件夾拷貝到工程根目錄,該文件夾包含了各種圖片處理插件。

3. 若需要對視頻處理,則將JMF1.2解壓後的customizer.jar、jmf.jar、multiplayer.jar、mediaplayer.jar拷貝到你的工程lib目錄,另外

該框架中還有一個jmf-2_1_1e-windows-i586.exe需要安裝,這樣才能操作你的攝像頭,並釋放必要的dll文件。

下面是個簡單程序,演示了Marvin加載圖片,修改大小後寫重新生成圖片的過程:

  1. package image;  
  2. import marvin.image.MarvinImage;  
  3. import marvin.io.MarvinImageIO;  
  4. /** 
  5.  * Created on 2010-7-9 
  6.  * <p>Description: [Marvin學習]</p> 
  7.  * @author         [email protected] 
  8.  * @version        1.0 
  9. */  
  10. public class MarvinTest  
  11. {  
  12.     /** 
  13.      * Created on 2010-7-9  
  14.      * <p>Discription:[main]</p> 
  15.      * @param args 
  16.      * @author:[[email protected]] 
  17.      */  
  18.     public static void main(String[] args)  
  19.     {  
  20.         String srcFile = "c://img//b.jpg";     //源文件  
  21.         String dstFile = "c://img//bb.jpg";    //處理後的文件  
  22.         MarvinImage image = MarvinImageIO.loadImage(srcFile);  //裝載圖像   
  23.         MarvinImage backupImage = image.clone();  //克隆圖像,確保對原圖不做修改   
  24.         backupImage.resize(800600);   //設置新寬度和高度   
  25.         MarvinImageIO.saveImage(backupImage, dstFile);   //保存圖像   
  26.     }  
  27. }  

可見Marvin的圖片管理是通過類MarvinImageIO來完成的。

具體API參考:http://marvinproject.sourceforge.net/javadoc/

另外:發現個小秘密,在經過resize()函數後,如圖片中有惡意信息,居然也會被清除的,這個功能不錯,哈哈~~~

Copyright © Linux教程網 All Rights Reserved