这是网上找的,一个网友对四大函数库的使用感受1.对OpenCV的印象:功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法;然后将图像格式和矩阵运算,然后将各个算法的实现函数。我用它来做了一个Harris角点检测器和Canny边缘检测器,总共就花了一个小时(第一次用OpenCV)。而且该库显示图像极其方便,两句话就可以。但该库似乎不大稳定,对32F和16S、8U的图像数据支持上bug重重。我用cvFilter2D函数进行线性滤波,屡屡出错,后来一查原来是大bug。后来用cvmGet来取矩阵元素也是频繁出错,仔细检查了N遍确保程序没问题之后在yahoogroup上找到答案:仍然是bug但好歹该库是开放的,所以自己可以修改;而且支持CVS。另外该库用的是IPL矩阵库,速度奇快~~2.对CxImage考察的印象:该开发包完全开放源代码,图像封装为一个类,功能极为强大,与Windows、MFC支持极好,支持图像的多种操作(线性滤波、中值滤波、直方图操作、旋转缩放、区域选取、阈值处理、膨胀腐蚀、alpha混合等等),支持从文件、内存或者win32api定义的位图图像格式中读取图像,支持将图像显示在任意窗口,功能可谓很强大了,而且对像素的操作很方便,另外还有一个界面很强的demo,可以直接在上面进行二次开发,推荐使用!
缺点:里面的子库很多,用起来可能较麻烦;而且感觉速度稍慢,不如后面提到的freeimage,但功能真的十分强大啊!3.CImg:就一个.h文件所以用起来很简明,但感觉功能上不如CxImage。可以与CxImage配合使用,因为CImg提供了基于lapack的矩阵运算函数和完善的线性滤波卷积函数,同时CImg做像素运算还是很方便的。另外,独有Display类可以方便的实现各种显示,包括显示图像、打字、画线等等。还有,该库有个基于光流的多尺度图像配准例子,很好4.FreeImage:C语言的体系,大量使用指针运算速度可以保证,内含先进的多种插值算法。另外独有的支持meta exif信息的读取。该库最大的特点就是比较简练,只把重点放在对各种格式图像的读取写入支持上,没有显示部分,实际编程的时候还是需要调用API函数进行显示 

解决方案 »

  1.   

    四大函数库?Agg和wxImage有没试过呢?我不喜欢OpenCV,感觉按照例子做个东西容易,再走就走不动了.CxImage我觉得还不错,至少在设计上,一定程度的面向对象.Agg和wxImage相当棒.具体google之吧.
      

  2.   

    一、?AGG是什么
    ?AGG,全名:Anti-Grain Geometry,是一个开源的、高效的2D图形库,它的网站:http://www.antigrain.com/。
    ?
    二、?AGG的特点
    ?AGG的功能与GDI+的功能非常类似,但提供了比GDI+更灵活的编程接口,其产生的图形的质量也非常高,而且它是跨平台的,其宣传可以在非常多的操作系统上运行,我至少在Windows、Wince、Linux三个台平上测试通过。
    ?
    三、?AGG的功能
    ?1、支持ALPHA、GAMMA等变色处理,以及用户自定义的变色处理;
    ?2、支持任意2D图形变换;
    ?3、支持SVG和PostScript描述,适于网上图形生成;
    ?4、支持高质量的图形处理,支持反走样插值等高级功能;
    ?5、支持任意方式的惭变色处理;
    ?6、支持所有颜色格式;
    ?7、支持对位图的多种处理;
    ?8、支持直线的多种处理,类似于GDI+;
    ?9、支持GPC,即通用多边形裁剪方法;
    ?10、支持多种字体输出,包括汉字的处理;
    ?
    四、?AGG的使用
    ?在设计上,它是师出Boost库,在其中使用了大量的现代标准C++语言的语法规则,包括模板、仿函数等处理,但是为了能在更多的平台上使用,它并没有直接使用Boost和STL库,而是自己实现了部分STL功能。
    ?AGG将图形功能分为几个层次,每一层次都可以由用户自己改动和扩充,作为AGG的使用者,可以使用它的全部功能,也可以只使用它的部分功能;作为图形的接口,它允许用户在不同层次上对它进行访问。
    ?以下是一个典型的作图分层:
    ?1、定义矢量作图源数据(其定义类似于PostScript);
    ?2、提供变换管道(包括坐标变换,以及其它可能的数据变换);
    ?3、将数据转为水平线光删化数据;
    ?4、将数据转为带颜色格式的输出缓冲区数据;
    ?5、输出位图或象素数组。
    ?AGG的设计定位是为其它开发工具提供工具,因此,其使用是灵活但不容易,但通过它提供的几十个例子,可以很容易地入门(但精通不是易事)。
    ?为了使用AGG,有两种方式,一种方式是直接使用它,一种方式是为它定义一个封装接口。现在网上有一些这方面的封装接口例子(比如说,定义一个仿GDI+的封装接口),可以在它的论坛上找到。本人也编写了一个封装类组,但主要是为了我的项目用的,以后我会提供一个更通用的封装类组。
    ?
    五、?使用AGG的软件
    ?我前段时间上网查2D图形功能,结果发现了许多库都是或多或少地使用了AGG,于是才对AGG感兴趣,我看中了它的跨平台性,以及运行速度和内存占用等。现在提供几个在内部使用AGG的比较有名的开源项目:
    ?Inkspace?一个跨平台的SVG编辑软件,部分使用了AGG的功能(还使用了ArtLib的功能,我以后会对ArtLib作介绍)。
    ?wxArt2d?一个基于Wxwindow的2D图形编辑软件,提供了AGG可以一种作图选择。
    ?vcf?一个C++框架库,使用AGG作为图形输出。
    ?这些库都可以到www.sf.net上找到。
      

  3.   

    继续收集~比较底层的tifflib,   libpng等图像解码库,综合的有cximage,   paintlib,   freeimage,   imagemagic等,它们有一些处理的功能。3D的有   VTK   等。OpenCV是模式识别的。在补充一个,就是intel的IPL,或者IPP。还有leadtools
      

  4.   

    CodeIgniter 的图像处理类可以使你完成以下的操作:调整图像大小 
    创建缩略图 
    图像裁剪 
    图像旋转 
    添加图像水印 
    可以很好的支持三个主流的图像库:GD/GD2, NetPBM, and ImageMagick。
      

  5.   

    DevIL (即以前的OpenIL)是一个跨平台的图形处理包,支持BMP,JPG,GIF等多种图形文件格式.
      

  6.   

    AGG用过很肤浅的一点功能,感觉很强大,一直想好好学习一下但学的不深,很想找人帮助一下。
      

  7.   

    推荐imagemagick, 很多人用, 支持文件格式多
      

  8.   

    “实际编程的时候还是需要调用API函数进行显示 ”我记得FreeImage有draw函数哦
      

  9.   

    quicktime library is very fast
      

  10.   

    同道中人商业的Leadtools不错,位图,矢量都支持,算法的速度也不错。对医学图像,文档图像的处理不错。开源的分几种,一种是对图像格式的支持(libtiff,jpeglib,ligpng等)
    一种是对算法的支持(cxImage,freeimage等),同时他们也适用了上面的库还有框架性的,比如 boost.gil等,提供了图像处理的框架支持,方便扩充。
      

  11.   

    刚刚开始学习OPENGL,也是开放的啊
    有机会多多交流啊 
      

  12.   

    用过cv,和cximage
    现在再用一位前辈的东西,不便于拿出来共享了总体感觉这些成熟的东西都不再把操作基于handle
    而是基于指针
    但是还是不太明白其中深意最近还是想写一个自己的
      

  13.   

    http://code.google.com/p/picasso-graphic/
      

  14.   

    有没有专门加载各种图形的格式的库呀? 比如一个库就可以加载jpg, png, bmp等
      

  15.   


    wxImage提供了各种常见图像格式的handle,可以直接在程序里加载
      

  16.   

    我目前就随便用一点,该用什么库呢?是否gdi+就足够了?