四大图像库:OpenCV/FreeImage/CImg/CxImage

本文转载自:http://hi.baidu.com/xiaocuiman/blog/item/6e267c2bc4b1883f5243c108.html

1.对OpenCV 的印象:功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法;

然后将图像格式和矩阵运算,然后将各个算法的实现函数。
我用它来做了一个Harris角点检测器和Canny边缘检测器,总共就花了一个小时(第一次用OpenCV)。
而且该库显示图像极其方便,两句话就可以。
但该库似乎不大稳定,对32F和16S、8U的图像数据支持上bug重重。
我用 cvFilter2D函数进行线性滤波,屡屡出错,后来一查原来是大bug。
后来用cvmGet来取矩阵元素也是频繁出错,仔细检查了N遍确保程序没问题之后在yahoogroup上找到答案:仍然是bug。。。
但好歹该库是开放的,所以自己可以修改;而且支持CVS。另外该库用的是IPL矩阵库,速度奇快~~

http://sourceforge.net/projects/opencvlibrary/

2.对CxImage 考察的印象:该开发包完全开放源代码,图像封装为一个类,功能极为强大,与Windows、MFC支持极好
,支持图像的多种操作(线性滤波、中值滤波、直方图操作、旋转缩放、区域选取、阈值处理、膨胀腐蚀、alpha混合等等)
,支持从文件、内存或者win32api 定义的位图图像格式中读取图像,支持将图像显示在任意窗口
,功能可谓很强大了,而且对像素的操作很方便
,另外还有一个界面很强的demo,可以直接在上面进行二次开发,推荐使用!

缺点:里面的子库很多,用起来可能较麻烦;而且感觉速度稍慢,不如后面提到的freeimage
但功能真的十分强大啊!

http://www.xdp.it/cximage.htm

3. CImg :就一个.h文件所以用起来很简明,但感觉功能上不如CxImage。
可以与CxImage配合使用,因为CImg提供了基于lapack的矩阵运算函数和完善的线性滤波卷积函数,同时CImg做像素运算还是很方便的。
另外,独有Display类可以方便的实现各种显示,包括显示图像、打字、画线等等。还有,该库有个基于光流的多尺度图像配准例子,很好。

http://cimg.sourceforge.net/

4.FreeImage :C语言的体系,大量使用指针运算速度可以保证,内含先进的多种插值算法。
另外独有的支持meta exif信息的读取。该库最大的特点就是比较简练,只把重点放在对各种格式图像的读取写入支持上,没有显示部分,实际编程的时候还是需要调用API函数进行显示。

http://freeimage.sourceforge.net/

时间: 2025-01-12 23:08:40

四大图像库:OpenCV/FreeImage/CImg/CxImage的相关文章

图像处理库的比较:OpenCV,FreeImage,CImg,CxImage

1.对OpenCV 的印象:功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法: 然后将图像格式和矩阵运算,然后将各个算法的实现函数.我用它来做了一个Harris角点检测器和Canny边缘检测器,总共就花了一个小时(第一次用OpenCV).而且该库显示图像极其方便,两句话就可以.但该库似乎不大稳定,对32F和16S.8U的图像数据支持上bug重重.我用 cvFilter2D函数进行线性滤波,屡屡出错,后来

CxImage 简单配置与使用

CxImage 简单配置与使用 如果本篇文章还不能解决你在生成解决方案以及便宜过程中的问题 请参阅: http://blog.csdn.net/afterwards_/article/details/7997385 我个人配置过来成功运行的经验. CxImage是一个十分强大的图形库,我们在PC端上开发GUI程序时,时常会用到位图之外的各种格式的图片,然而令我们郁闷的是在Windows平台上的GDI对一些图片格式支持的很差,比如png格式!尽管mfc上有一个CImage类来解决这个问题,但是,C

MFC/VC CxImage 简单配置与使用 (完整版)

如果本篇文章还不能解决你在生成解决方案以及便宜过程中的问题 请参阅: http://blog.csdn.net/afterwards_/article/details/7997385 我个人配置过来成功运行的经验. CxImage是一个十分强大的图形库,我们在PC端上开发GUI程序时,时常会用到位图之外的各种格式的图片,然而令我们郁闷的是在Windows平台上的GDI对一些图片格式支持的很差,比如png格式!尽管mfc上有一个CImage类来解决这个问题,但是,CImage对png图片的支持其实

初始化-MFC 利用opencv显示图片,需要在窗体完成哪一步后才可以

问题描述 MFC 利用opencv显示图片,需要在窗体完成哪一步后才可以 对对话框创建流程不是太清楚. 下面代码只能通过按钮点击响应才可以,但直接放在对话框初始化以及onsize里面就不行. cv::Mat mat, mat2; mat = cv::imread("D:\test1.jpg", 1); if(! mat.data) { MessageBox(_T("error", "no image loaded!"), MB_OK); retu

mfc+MATLAB+opencv出现内存泄露问题

问题描述 mfc+MATLAB+opencv出现内存泄露问题 我的程序这么多的内存泄露,但是不知道具体是哪的原因,我想做的是vs与MATLAB混合编程实现图像处理. Detected memory leaks! Dumping objects -> {301} normal block at 0x007DC1F8, 47 bytes long. Data: 4A 50 45 47 2D 32 30 30 30 20 43 6F 64 65 20 53 这是vc++程序 void CMFCAppl

CxImage学习

官方下载地址是:http://www.xdp.it/cximage/   打开工程后可以看到下例这些工程: - CxImage - CxImageCrtDll - CxImageMfcDll - dome - domeDll - jasper - jbig - jpeg - libdcr - mng - png - tiff - zlib   1.首先我们要确定在程序中是希望静态链接还是动态链接,在这里我建议大家使用动态链接,因为这个库有点大,如果使用静态链接的话你的应用程序体积会额外增加1MB

MFC+OPENCV实现JPEG图片的播放

用vc6.0进行开发真的有点蛋疼,在实现jpeg图片的播放,vc6.0的picture控件居然只支持位图>_< 开始想法是在程序中加一个编码过程,边读图边解码边显示,先将JPEG图片转化为位图再显示,但代价是在OPENCV中的自带的函数支持编解码,但要先写下来,所以读写再度时间较长无法满足实时性的要求: 第二种方法是用VTK中带的vtkJPEGReader类,在MFC中创建一个VTK的自定义控件,后读入显示,但结果是读入显示太慢,屏幕会一闪一闪的,速度太慢,查资料说要用双缓冲的技术: 后继续找

基于OpenCV的PHP图像人脸识别技术_php技巧

openCV是一个开源的用C/C++开发的计算机图形图像库,非常强大,研究资料很齐全.本文重点是介绍如何使用php来调用其中的局部的功能.人脸侦查技术只是openCV一个应用分支. 1.安装 从源代码编译成一个动态的so文件. 1.1.安装 OpenCV (OpenCV 1.0.0) 下载地址:http://sourceforge.net/project/showfiles.php?group_id=22870&package_id=16948 #tar xvzf OpenCV-1.0.0.ta

返回时C++内存问题opencv写的

问题描述 返回时C++内存问题opencv写的 //读取摄像头并保存为AVI文件 #include "cv.h" #include "highgui.h" int main(int argc,char**argv) { CvCapture* capture=0; IplImage *bgr_frame; int fps=25; int i; CvSize size; CvVideoWriter *writer; cvNamedWindow("Jimmy&q