图像处理开放源码库

下面介绍免费图像处理开放源码库.

1.Opencv

工业标准级计算机视觉和图像处理库,应该是使用者最多的,丰富的api库

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python、Java and MATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#、Ch、Ruby,GO的支持。
所有新的开发和算法都是用C++接口。一个使用CUDA的GPU接口也于2010年9月开始实现。

官网:http://opencv.org

仓库:https://github.com/opencv/opencv

2.ImageJ

用java编写,图像处理、可视化和计算机视觉方面的应用程序。由美国国立卫生院开发,供公众使用,可以自己在开发插件,用户社区也有很多提交的插件可以使用,

https://imagej.nih.gov/ij/index.html

http://rsb.info.nih.gov/ij/plugins/

http://fiji.sc/Fiji

具体导入方法:imagej工程导入Eclipse方法,Eclipse编译imagej

3.VLFEAT

包含一系列常见计算机视觉算法的C语言库,算法功能包括特征描述、模式匹配和图像处理等,丰富的API库

http://vlfeat.org

4.VTK

包含一系列常见的图像处理、图形学和数据可视化函数的C++库。提供GUI控件。还提供咨询服务,丰富的API库

Vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转换界面,因此也可以自由的通过Java,Tcl/Tk和Python各种语言使用vtk。

http://vtk.org 

5.ITK

ITK( Insight Segmentation and Registration Toolkit)是美国国家卫生院下属的国立医学图书馆开发的一款医学图像处理软件包,是一个开源的、跨平台的影像分析扩展软件工具。

ITK的开发过程中采用了先进的多模态数据分割配准算法,用于处理图像配准和分割的问题。 ITK是用C++实现的,能够跨平台,并用CMake来管理编译过程来保证编译过程独立于平台。除此以外,它还使用一种叫做卷的处理过程,来产生C++和 其他其他解释程序之间的接口,从而使得开发者能用各种不同的程序语言来开发。

ITK的C++执行风格是基于泛型(generic programming)编程,也就是说他使用的是模板来保证相同的代码能广泛的应用于任何类或者类型。这种C++模板的方式使得编码过程很高效,并且使 很多软件的问题在编译的时候就发现了,而不是在运行的时候。

由于ITK 是一个开源的工程,因此来自世界各地的开发者都可以使用、调试、维护以及扩展这个软件。ITK使用一种叫做极限编程的思想来开发的。极限编程颠覆了传统软 件编程的思想,它采用不断同时反复的进行设计-执行-测试-发布的过程。极限编程的核心特征是交流和测试

官网:https://itk.org/

仓库:https://github.com/InsightSoftwareConsortium

6.Meshlab

3D数据网格可视化、渲染、标注和转换的应用程序,如点云处理和CAD设计。应该广泛,需要使用来自ISTI-CNR的VCG库

MeshLab 是一个开源、可移植和可扩展的三维几何处理系统,主要用于交互处理和非结构化编辑三维三角形网格。该系统发布于2005年年底,旨在提供一整套三维扫描、 编辑、 清洗、 拼合、 检查、 呈现和转换网格数据的工具。

http://meshlab.sourceforge.net/