CImg 介绍:简洁、高效、强大、酷毙的C++ 图像处理模板库

 

CImg 库是一个免费、开源的图像处理C++库,名称原意是 Cool Image,正如其名,CImg是一个非常优秀、功能强大、代码简洁、使用方便的C++ 图像处理库。它不仅非常适合科学家、研究生做科研时使用,也适合在工业应用工程开发中使用,更适合的是,对于有志于开发简洁、高效、功能强大的图像处理库的人而言,CImg的源码是不可多得的学习和参考资料。

  

CImg 官网:http://cimg.sourceforge.net/

CImg论坛:http://sourceforge.net/projects/cimg/forums/forum/334630

 

总体而言,CImg 有以下特征:

 

功能强大:使用CImg, 可以读取和存储各种格式的图像文件,可以访问像素值,可以显示、变换、及对图像进行各种滤波,在图像上画图像元素(字符串、多边形、3-d 物体...),计算图像的各种统计信息,处理人机交互等等...

 

普适性:CImg只定义了一个模板类来表征任何不超过4-d 的数据集,并且元素类型可以是绝大多数C++内置类型和自定义类型(bool, char, int, float...). CImg 还可以处理图像集合和图像序列。

 

可移植性:它完全兼容于操作系统如Windows, Unix, Linux, MacOS X, *BSD...,也完全兼容与编译器如 VC++, g++, icc...等,具有高度的可移植性。

 

轻便性:CImg 非常轻便,整个库只用一个文件:cimg.h。任何C++应用程序只需要将该头文件包含进工程中即可使用该库的全部功能。它只定义了四了类(模板)和两个名称空间。该库只依赖与标准C++和STL,只在显示类部分依赖与操作系统的GDI,再也不依赖任何其他的外部库。

 

可扩展性:CImg 使用两种机制来增强其功能,这两种机制都不是必须的,只是锦上添花,可以增加一些功能。一是利用外部工具或库的功能,比如:ImageMagick,GraphicsMagick,XMedCon,FFMPEG, libpng, libjpeg, libtiff, Magick++, OpenCV, Lapack, Board, OpenEXR or FFTW3;二是使用插件的机制,可以使库的使用者自行扩展库的功能。

 

自由性:完全免费、开源、可以用于商业开发。

 

跟OpenCV相比,CImg 虽然提供了基本上所有的图像处理的基本操作,但图像处理的高级操作较少,因此总体上功能比OpenCV少很多,(因为OpenCV 本身很庞大,包括基本上所有的图像处理基本操作,还包含了大量的图像处理高级操作,而且还包含了模式识别的东西)。但CImg对有志于开发图像处理库的人而言,具有很大的研究价值,因为该库结构简单,代码简洁高效,功能相对已经很强大,且代码量不大(40,000多行),编程技巧很有大师风格。 当然,如果研究者水平极高,有能力研究OpenCV源码的,则另当别论。

 

 

 

你可能感兴趣的:(C++,windows,image,扩展,编译器,图像处理)