画像処理ライブラリの概要

免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/x454045816/article/details/52097224
画像処理ライブラリの概要
あなたは、画像処理時間のいくつかの研究と研究を行う必要がある場合は、最初のタスクは、画像処理ライブラリの適切なセットを選択することで、この記事では、図書館で様々な画像の利点と欠点のいくつかを紹介します。OpenCVの、インテルIPP、ハルコン、MATLAB、OpenGLの、EmguCv、AForge.net、CxImage、FreeImage、paintlib、AGG、IPL、visDSK。欠陥は、また、提案の多くを喜ばせる、ありがとうございました!別の生活を体験するためにあなたと「スマートアルゴリズム」のマイクロチャネル国民の関心番号へようこそ!
1. OpenCVの
説明:OpenCVの完全な名前がある:オープンソースのコンピュータビジョンライブラリ。インテル®オープンソースのコンピュータビジョンライブラリです。これは、Cの一連の機能、および多くの一般的な画像処理とコンピュータビジョンアルゴリズムの側面を実装するC ++クラスの少量で構成されています。OpenCVのは、Linux、WindowsとMac OSオペレーティング・システム上で実行できるクロスプラットフォームのコンピュータビジョンライブラリの(オープンソース)の問題に基づいています。これは、軽量かつ効率的である - Cの一連の機能といくつかのC ++クラスで構成され、画像処理とコンピュータビジョンの多くの一般的なアルゴリズムを達成するためのインターフェースはPythonやRuby、MATLABおよび他の言語を提供します。C ++言語で書かれたOpenCVのは、その主なインタフェースは、C ++言語であるが、それでもC言語インタフェースを大量に保持します。
OpenCVの機能
そのようなGUIの画像データ、画像/ビデオ、基本的な画像処理、構造解析、カメラ較正、運動解析、及び基本目標認識機能インターフェースに入出力操作を提供します。
OpenCVのモジュール
CV - カーネル・ライブラリ; cvaux - 補助ライブラリー; CXCORE - と線形代数ライブラリのデータ構造;のHighGUI - GUIライブラリ;ミリリットル - 機械学習ライブラリー
特徴:
あなたはまた、いくつかの外部ライブラリを使用することができますが無料、オープンソースのコードは、高レベルAPIで構成されるクロスプラットフォームであり、それは、他の外部ライブラリに依存しません。声明IplImageへおよび他の構造の変数のIPL(インテルの画像処理ライブラリ)OpenCVのコピーの完全に独立するために。
OpenCVのインテル®インテグレーテッド・PerformancePrimitives(IPP)透明ユーザインターフェースを提供します。それは何の依存性はありませんIPP。しかし、IPPのインストールが、その後、OpenCVのは、IPP IPPによる優位性を獲得することになります場合は、自動的に速度を向上させるために、ダイナミックリンクライブラリをロードされます。

2.インテルIPP
説明:IPP「インテルインテグレーテッド・パフォーマンス・プリミティブ」(インテルIPP)は、クロスプラットフォームのソフトウェアライブラリです
オーディオデコーダ(例えば:H263、MPEG-4)、画像処理(JPEG)、信号処理、音声圧縮(例えば:G723、GSM、AMR)と暗号化メカニズム:彼は、マルチメディア機能の広い範囲を提供します。
使用インテルPentium 4プロセッサ、インテルCentrinoモバイル・コンピューティング技術を使用して、インテルのPentium Mプロセッサアセンブリ、インテルItanium 2プロセッサ、Intel XeonプロセッサとIntelのXScaleテクノロジー:インテルIPPは、インテルマイクロプロセッサ(マイクロプロセッサ)の多数のために最適化インテルPCAのアプリケーションプロセッサ。クロスプラットフォームAPI構造の共通セットを使用して、ユーザーに加えて、プラットフォームの互換性を心配する必要はなく、開発コストと開発時間を節約しない、ユーザーが簡単にレガシーアプリケーションを移植することができます。
特徴:
IPP充電ソースコードが開いていない、 クロスプラットフォームやOSの汎用API
ライブラリ:信号処理、画像処理、マルチメディア、および他のベクトル処理
良好なパフォーマンスを得るためのコード、アセンブリコードを記述する必要はありません、最適なアプリケーション、高速、高効率を得るために

3.ハルコン
説明:ドイツMVtec会社の画像処理ソフトウェアHALCONは、マシンビジョンソフトウェアは、最高の性能を持つものとして世界的に認識されています。それは、市場が、いくつかの市販のソフトウェアパッケージとは異なり、学界で始まりました。実際には、これは、基礎となるコア構成のより千の別個の機能によって画像処理ライブラリ、およびデータ管理です。これは、フィルタリング、色解析および形状、数学的変換、モルフォロジー演算分析、キャリブレーション、分類、識別の多様を含み、従って、基本的な幾何学的形状の検索と画像演算機能で、これらの機能のほとんどは、特定のジョブのために設計されていないので、それほど限りの場所を取得するために使用される画像処理として、あなたは仕事を完了するために、HALCONの強力な計算機能と分析機能を使用することができます。医学、リモートセンシング、キャリーを監視し、業界での自動テストの様々なタイプをカバーするアプリケーションの範囲にほぼ制限なし、。近年では、原因マシンビジョン技術の開発に、これは生産性を高める大幅なエレクトロニクス業界として、ハイテク産業の発展を促進し、疲労、高精度かつ安定した特性の仕事を重複しない「人間の目に取って代わる」ことができます。同社は、常にMVTecの学界との連携、およびそれらへの最新の学術研究、産業界でその技術的リーダーシップを作るだけでなく、マシンビジョン技術より高いレベルにするだけではありません。
HALCONマシンビジョンソフトウェアは、世界中で広く使用され、ユーザーが画像処理とマシンビジョンアプリケーションの迅速な開発のためのオープンなアーキテクチャを活用することができます。
プロの画像処理ツールだけでなく、画像処理ライブラリが含まれています。画像処理タスクは、さらなる処理および制御ソフトウェアやデータベース接続部、及び光照射画像取得ハードウェア部分を含む、マシンビジョンソリューションの一部のみを解決します。このように、画像処理システムは使いやすく、そして組み込み開発プロジェクトは非常に重要である生きることができます。HALCONが完全に考慮にこれらの側面を取る、それは次の機能があります。
1)。HALCONは、プログラムコードHALCONに直接書き込むことができる対話型プログラミングインターフェースHDevelopのセットを含む、変更、プログラムの実行、および計算プロセスの変数の全てを表示することができ、設計が完了した後、/直接出力Cとすることができますアプリケーションプログラム内に埋め込まれたC ++、またはCOM(Visual Basicの)コード。
2). HALCON不限制取像设备,可以自行挑选合适的设备。原厂己提供了4 0余种相机的驱动,即使是尚未支持的相机,除了可以透过指针(pointer)轻易的抓取影像,还可以利用HALOCN开放性的架构,自行编写DLL文件和系统连接。
3). 使用HALCON有最好的投资效益。这套软件支持的操作系统除了微软的NT/XP/2000,还有Linux, Solaris7,  181X6. 5, "1'ru64 UN1X5. 1等等,当需要开发出一套系统,就可以轻易转换作业平台,以符合需求。为了加快速度,还可以使用多处理器的计算机,所编写的程序不必更动。
4). 使用HALOCN,在设计人机接口时没有特别的限制,也不需要特别的可视化组件,可以完全使用开发环境下的程序语言,例如Mircosoft Visual Studio等等,架构自己的接口,最终用户看不到开发工具,而且在执行软件的机器上,只需要很少的资源。

4. MATLAB 
简介:MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C, FORTRAN, C++, JAVA的支持。
特点:
1). 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2). 具有完备的图形处理功能,实现计算结果和编程的可视化;
3). 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4). 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
功能十分强大,正版软件价钱昂贵,适用于学术研究,仿真和演示。在软件开发,工程应用方面有一定的局限性。

5. OpenGL
OpenGL(全写Open Graphics Library)是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库。
OpenGL 是行业领域中最为广泛接纳的 2D/3D 图形API,其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。OpenGL™ 是独立于视窗操作系统或其它操作系统的,亦是网络透明的。在包含CAD、内容创作、能源、娱乐、游戏开发、制造业、制药业及虚拟现实等行业领域中,OpenGL™ 帮助程序员实现在 PC、工作站、超级计算机等硬件设备上的高性能、极具冲击力的高视觉表现力图形处理软件的开发。
特点:
1). 与C语言紧密结合。
OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的。如果你曾经接触过TC的graphics.h,你会发现,使用OpenGL作图甚至比TC更加简单。
2). 强大的可移植性。
微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机)。而OpenGL不仅用于 Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。并且,OpenGL 的基本命令都做到了硬件无关,甚至是平台无关。
3). 高性能的图形渲染。
OpenGL是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL提供强力支持,激烈的竞争中使得OpenGL性能一直领先。
总之,OpenGL是一个很NB的图形软件接口。至于究竟有多NB,去看看DOOM3和QUAKE4等专业游戏就知道了。

6. EmguCv
EmguCV 是.NET 平台下对OpenCV 图像处理库的封装。也就是OpenCV的.NET 版。它运行在.NET 兼容的编程语言下调用OpenCV 的函数,如C#、VB、VC++、IronPython 等。这个封装库可以在Mono 下编译和在Linux / Mac OSX 上运行。EmguCV 全部用 C#编写 ,它可以在Mono环境里编 译,在 任何 Mono支持的平台 (如 Linux, Solaris,MacOSX ) 上 运 行 。EmguCV 的其他优势还有,支持通用颜色和深度的图像类,自动垃圾收集,可XML序列化的图像,XML 文档和 Intel license 支持, 自由选择图像类或 OpenCV 的 direct invoke 函数 ,图像象 素上的通用操作等。 也就是说 ,EmguCV 不仅继承了 OpenCV 的所有功能和特点 ,而且在跨平台支持方面也有更大的突破 。
将OpenCv的绝大部分功能都包装成了.net类、结构或者枚举。不过文档不全,还是得对照OpenCv的文档去看才行。

7. AForge.net
AForge.NET 是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,机器人等领域。
这个框架由一系列的类库和例子组成。其中包括的特征有:
AForge.Imaging -一些日常的图像处理和过滤器
AForge.Vision -计算机视觉应用类库
AForge.Neuro -神经网络计算库
AForge.Genetic -进化算法编程库
AForge.MachineLearning -机器学习类库
AForge.Robotics -提供一些机器学习的工具类库
AForge.Video -一系列的视频处理类库(很方便)
纯.net类库,接口简单,用起来很方便。

8. CxImage
CxImage类库是一个优秀的图像操作类库。它可以快捷地存取、显示、转换各种图像。有的读者可能说,有那么多优秀的图形库,如OpenIL,FreeImage,PaintLib等等,它们可谓是功能强大,齐全,没必要用其它的类库。但我要说,这些类库基本上没有免费的,使用这些类库,你要被这样那样的许可协议所束缚。在这点上,CxImage类库是完全免费的。另外,在使用上述类库时,你会遇到重重麻烦。因为它们大部分是平台无关的,且用C语言写成,有的还夹杂着基本的C++ wrapper和成堆的编译选项的声明需要你去处理。而CxImage类库在这方面做得很好。作者完全公开了源代码。相对于那些封装好的图形库和GDI+来说,这一点使我们可以进一步学习各种编解码技术,而不再浮于各种技术的表面。

9. FreeImage
FreeImage 是一款免费的、开源的、跨平台(Windows 、Linux 和Mac OS X )的,支持20 多种图像类型的(如BMP 、JPEG 、GIF 、PNG 、TIFF 等)图像处理库。其最大优点就是采用插件驱动型架构,具有快速、灵活、简单易用的特点,得到了广泛使用。
FreeImage 的主要功能有多格式位图的读写;方便的位图信息获取;位深度转换;位图页面访问;基本的几何变换和点处理;通道合并与混合等。FreeImage 暂时不支持矢量图形和高级图像处理,位图绘制需要由用户来完成。
FreeImage 中的所有函数都以FreeImage_ 开头,如图像文件的读写函数分别为FreeImage_Load 和FreeImage_Save 。FIBITMAP 数据结构保存着位图信息和像素数据,是FreeImage 的核心。

10. paintlib
paintlib是一个可移植的用于图像加载、保存和处理的C++类库。可从BMP, GIF, JPEG, PCX, PGM, PICT, PNG, PSD, TGA, TIFF和WMF文件中加载图像,且可保存为BMP, JPEG, PNG和TIFF格式。既可通过在过滤器类中执行过滤, 也可通过直接访问位图来进行图像处理。提供了完整的C++源码。

11. AGG
AGG,全名:Anti-Grain Geometry,是一个开源的、高效的2D图形库
AGG是一个高效的、高质量的、开源的矢量图形库,类似的有:GTK+的Cairo,Microsoft的GDI+。在三者中,AGG的性能是最高的(不讨论Skia和Direct2D,他们有OGL和DX的硬件加速,绘图速度根本不是一个档次的)。
特点:
AGG的功能与GDI+的功能非常类似,但提供了比GDI+更灵活的编程接口,其产生的图形的质量也非常高,而且它是跨平台的,其宣传可以在非常多的操作系统上运行.
AGG的功能
1). 支持ALPHA、GAMMA等变色处理,以及用户自定义的变色处理;
2). 支持任意2D图形变换;
3). 支持SVG和PostScript描述,适于网上图形生成;
4). 支持高质量的图形处理,支持反走样插值等高级功能;
5). 支持任意方式的惭变色处理;
6). 支持所有颜色格式;
7). 支持对位图的多种处理;
8). 支持直线的多种处理,类似于GDI+;
9). 支持GPC,即通用多边形裁剪方法;
10). 支持多种字体输出,包括汉字的处理;
效率高,质量高(有反锯齿),功能强大,跨平台和平台GUI支持,缺点:没有硬件加速,文档少,门槛略高.

12. IPL:
Intel 的IPL image library虽然没有开源但是进行普通的图像处理非常好用,像拉布拉斯算子,索贝尔算子等等边缘提取和锐化的函数。 如果目标平台是PC机或者工控机又是Intel的CPU,这是一个非常不错的选择。
现在已经没有IPL了,IPL已经是IPP的一部分了,不过还是可以下载早期版本。IPP的教育版50$,不是很贵,集成大部分算法1D signal processing, 语音信号处理;2D signal prodessing, image processing, video processing. Open CV的模式将很类似于IPL.
特点:
IPL 图象处理库,免费,起初开源,后来不开源。

13. visDSK:
MICROSOFT图像处理库,免费、开源。OpenCV未出现时很受追捧,但是现在visDSK能做的OpenCV都可以做,在速度上,OpenCV还有Intel公司的优化支持。visDSK的时代已然成为过去。

欢迎关注微信公众号“智能算法”,带您体验不一样的人生!

おすすめ

転載: blog.csdn.net/x454045816/article/details/52097224