常用图像处理库都有哪些?
@转载自https://cloud.tencent.com/developer/article/1430327?
原文发布于微信公众号 - 智能算法(AI_Algorithm)
- OpenCV
简介:OpenCV全称是:Open Source Computer Vision Library。是Intel®开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和一些C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。
OpenCV功能
提供对图像数据操作,图像/视频的输入输出,基本图像处理,结构分析,摄像头定标,运动分析,目标识别以及基本的GUI等的函数接口。
OpenCV模块
cv – 核心函数库;cvaux – 辅助函数库;cxcore – 数据结构与线性代数库;highgui – GUI函数库;ml – 机器学习函数库
特点:
免费,源代码公开,是一个跨平台的中、高层API 构成,它不依赖与其它的外部库,尽管也可以使用某些外部库。,为了完全独立于IPL (INTEL的图像处理库) OpenCV 复制了IplImage 和其它一些结构变量的声明。
OpenCV 为Intel® Integrated PerformancePrimitives (IPP) 提供了透明的用户使用接口。它对IPP不存在任何依赖。但如果安装了IPP,那么OpenCV将会通过自动载入IPP动态链接库来获取IPP的优势,来提升速度。
- Intel IPP
简介:IPP“Intel Integrated Performance Primitives” ( Intel IPP )是一套跨平台的软件函数库,
他提供了广泛的多媒体功能:音频解码器(例如: H263 、 MPEG-4 )、图像处理 (JPEG) 、信号处理、语音压缩(例如: G723 、 GSM 、 AMR )和加密机制。
Intel IPP 针对大量的 Intel Microprocessor (微处理器)进行优化: Intel Pentium 4 处理器,采用 Intel Centrino 移动运算技术的 Intel Pentium M 处理器组件, Intel Itanium 2 处理器、 Intel Xeon 处理器以及采用 Intel XScale 技术的 Intel PCA 应用处理器。采用一套跨平台结构的通用 API ,使用者除了不需要担心平台兼容性的问题,更节省了开发成本以及研发时间,使用者可以轻轻松松移植原有应用程序。
特点:
IPP收费源代码不公开
函数库:信号处理,图像处理,多媒体,向量处理等
跨平台和OS的通用 API
高性能代码,不需要写汇编代码,获得优化的应用程序,速度快,效率高。
- Halcon
简介:德国MVtec公司的图像处理软件HALCON,是世界公认具有最佳效能的机器视觉软件。它发源自学术界,有别于市面一些商用软件包。事实上,这是一套图像处理库,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中包含了各类滤波、色彩分析以及几何、数学变换、形态学计算分析、校正、分类、辨识、形状搜索等等基本的几何以及图像计算功能,由于这些功能大多并非针对特定工作设计的,因此只要用得到图像处理的地方,就可以用HALCON强大的计算分析能力来完成工作。应用范围几乎没有限制,涵盖医学、遥感探测、监拎、及工业上的各类自动化检测。近年来,由于机器视觉技术的发展,这种可以”取代人眼”,对重复工作不会疲劳,精度高且稳定的特质,促进了高科技业的发展,例如电子业产量的大幅提升。而MVTec公司更是不断的与学术界合作,并且将最新的学术研究成果纳入其中,不但使自己的技术处于业界领导地位,同时也将机器视觉技术推向更高的境界。
机器视觉软件HALCON在世界范围内被广泛的使用,用户可以利用其开放式结构快速开发图像处理和机器视觉应用。
一个专业的图像处理工具不只包含一个图像处理函数库。图像处理任务的解决只是整个机器视觉解决方案的一部分,还包括处理控件和或者数据库连接等软件部分,图像获取及其照明等硬件部分。因此,图像处理系统简单易用,并且能活嵌入到开发项目中是非常重要的。Halcon充分考虑到这些方面,它有如下的特点:
1). HALCON包含了一套交互式的程序设计接口HDevelop,可在其中以HALCON程序代码直接编写、修改、执行程序,并且可以查看计算过程中的所有变量,设计完成后,可以直接输出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等等,架构自己的接口,最终用户看不到开发工具,而且在执行软件的机器上,只需要很少的资源。
- MATLAB
简介:MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
特点:
1). 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2). 具有完备的图形处理功能,实现计算结果和编程的可视化;
3). 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4). 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
功能十分强大,正版软件价钱昂贵,适用于学术研究,仿真和演示。在软件开发,工程应用方面有一定的局限性。
- 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等专业游戏就知道了。
- 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的文档去看才行。
- AForge.net
AForge.NET 是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,机器人等领域。
这个框架由一系列的类库和例子组成。其中包括的特征有:
AForge.Imaging -一些日常的图像处理和过滤器
AForge.Vision -计算机视觉应用类库
AForge.Neuro -神经网络计算库
AForge.Genetic -进化算法编程库
AForge.MachineLearning -机器学习类库
AForge.Robotics -提供一些机器学习的工具类库
AForge.Video -一系列的视频处理类库(很方便)
纯.net类库,接口简单,用起来很方便。
- CxImage
CxImage类库是一个优秀的图像操作类库。它可以快捷地存取、显示、转换各种图像。有的读者可能说,有那么多优秀的图形库,如OpenIL,FreeImage,PaintLib等等,它们可谓是功能强大,齐全,没必要用其它的类库。但我要说,这些类库基本上没有免费的,使用这些类库,你要被这样那样的许可协议所束缚。在这点上,CxImage类库是完全免费的。另外,在使用上述类库时,你会遇到重重麻烦。因为它们大部分是平台无关的,且用C语言写成,有的还夹杂着基本的C++ wrapper和成堆的编译选项的声明需要你去处理。而CxImage类库在这方面做得很好。作者完全公开了源代码。相对于那些封装好的图形库和GDI+来说,这一点使我们可以进一步学习各种编解码技术,而不再浮于各种技术的表面。
- FreeImage
FreeImage 是一款免费的、开源的、跨平台(Windows 、Linux 和Mac OS X )的,支持20 多种图像类型的(如BMP 、JPEG 、GIF 、PNG 、TIFF 等)图像处理库。其最大优点就是采用插件驱动型架构,具有快速、灵活、简单易用的特点,得到了广泛使用。
FreeImage 的主要功能有多格式位图的读写;方便的位图信息获取;位深度转换;位图页面访问;基本的几何变换和点处理;通道合并与混合等。FreeImage 暂时不支持矢量图形和高级图像处理,位图绘制需要由用户来完成。
FreeImage 中的所有函数都以FreeImage_ 开头,如图像文件的读写函数分别为FreeImage_Load 和FreeImage_Save 。FIBITMAP 数据结构保存着位图信息和像素数据,是FreeImage 的核心。
- paintlib
paintlib是一个可移植的用于图像加载、保存和处理的C++类库。可从BMP, GIF, JPEG, PCX, PGM, PICT, PNG, PSD, TGA, TIFF和WMF文件中加载图像,且可保存为BMP, JPEG, PNG和TIFF格式。既可通过在过滤器类中执行过滤, 也可通过直接访问位图来进行图像处理。提供了完整的C++源码。
- 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支持,缺点:没有硬件加速,文档少,门槛略高。
- 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 图象处理库,免费,起初开源,后来不开源。
- visDSK
MICROSOFT图像处理库,免费、开源。OpenCV未出现时很受追捧,但是现在visDSK能做的OpenCV都可以做,在速度上,OpenCV还有Intel公司的优化支持。visDSK的时代已然成为过去。
参考文献:
http://wenku.baidu.com/view/e5dced5b90c69ec3d5bb75ba.html?from=search
http://wenku.baidu.com/view/11c961dcc1c708a1284a44bf.html?from=search
http://wenku.baidu.com/view/bd2fd40df12d2af90242e6d0.html?from=search
http://wenku.baidu.com/view/7b70e3afdd3383c4bb4cd211.html
http://wenku.baidu.com/view/7bacd7651ed9ad51f01df29b.html
http://wenku.baidu.com/view/59257440011ca300a6c3903a.html?from=search
http://wenku.baidu.com/view/21b46653ad02de80d5d84004.html?from=searc
链接: link.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks |
'Isn't this fun?'
|
‘Isn’t this fun?’ |
Quotes |
"Isn't this fun?"
|
“Isn’t this fun?” |
Dashes |
-- is en-dash, --- is em-dash
|
– is en-dash, — is em-dash |
创建一个自定义列表
- Markdown
- Text-to-HTML conversion tool
- Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。1
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ(n)=(n−1)!∀n∈N\Gamma(n) = (n-1)!\quad\forall n\in\mathbb NΓ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ(z)=∫0∞tz−1e−tdt .\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎
常用图像处理库都有哪些?相关推荐
- Python中常用图像处理库
Python中常用图像处理库 文章目录 Python中常用图像处理库 1 OpenCV-Python 2 Numpy 3 matplotlib 4 skimage 5 PIL(Python Imagi ...
- python图像库_Python常用图像处理库整理
1. 库简介 深度学习领域,对视频图片样本的处理占了很大一部分比重. 而Python环境下的图像处理库种类较多,无论是精度,速度等方面都有不同的差异,这里予以总结. Python环境下,相关的包有: ...
- python下医学图像处理库的安装问题(更新中)
1. pip install dipy:DIPY is a python toolbox for analysis of MR diffusion imaging. 2. pip install ni ...
- python下医学图像处理库的安装问题
1. pip install dipy:DIPY is a python toolbox for analysis of MR diffusion imaging. 2. pip install ni ...
- python图像对比_Python多种图像处理库的比较与比较
我帮助在libvips wiki 上维护一个页面,比较20个左右的常用图像处理库,以便快速和内存使用,包括相当多的Python系统. 基准测试非常简单:加载5,000 x 5,000像素RGB TIF ...
- wxpython dataview处理大量数据_38个常用Python库:数值计算、可视化、机器学习等8大领域都有了...
作者 | 李明江 张良均 周东平 张尚佳 来源 | 大数据DT 原文 | 38个常用Python库:数值计算.可视化.机器学习等8大领域都有了 Python作为一个设计优秀的程序语言,现在已广泛应用于 ...
- Python中最常用十大图像处理库详细介绍
本文主要介绍了一些简单易懂最常用的Python图像处理库 当今世界充满了各种数据,而图像是其中高的重要组成部分.然而,若想其有所应用,我们需要对这些图像进行处理.图像处理是分析和操纵数字图像的过程,旨 ...
- 38个常用Python库:数值计算、可视化、机器学习等8大领域都有了
导读:Python作为一个设计优秀的程序语言,现在已广泛应用于各种领域,依靠其强大的第三方类库,Python在各个领域都能发挥巨大的作用. 作者:李明江 张良均 周东平 张尚佳 来源:大数据DT(ID ...
- 几种常用图像处理开源库简介及使用总结
1.OpenCV,主要以算法形式,展示其实现:也就是说,它实际提供的是各种图像处理算法.若需具体应用,需要组合其算法以实现某个功能. OpenCV 的全称 Open Source Computer V ...
- 机器视觉基础知识/经典系统/常用领域以及机器视觉常用的图像处理库
[0-定义] **计算机视觉:**一门研究如何使机器"看"的科学,更进一步的说,就是指用摄影机和计算机代替人眼对目标进行识别.跟踪和测量等机器视觉,并进一步做图像处理,用计算机处理 ...
最新文章
- Hadoop生态圈-Flume的组件之自定义拦截器(interceptor)
- 某生鲜电商平台的监控模块设计
- python第三方库numpy-Python第三方库之openpyxl(2)
- WinXP/2000操作系统自动关机的实现
- 路由器刷机常见第三方固件及管理前端种类(OpenWrt、Tomato、DD-Wrt)
- CVPR2021 论文大盘点:全景分割论文汇总(共15篇)
- 叉乘点乘混合运算公式_期末复习|人教版二年级上册数学概念和公式总结
- 使用.Net 1.1的项目,TreeView控件不能正常显示
- 人工智能的前景:更高智慧的体的诞生
- 有关findviewbyid 一个错误用法
- Pandas最详细教程来了!
- Mysql Workbench中EER Diagram逆向生成表
- 【java学习之路】(java框架)008.JdbcTemplate
- 强化学习的基础总结(一)
- java版的贪吃蛇。
- CAN通讯、CAN协议、UDS
- python图像手绘效果_python 3.6实现图像的手绘效果
- Excel如何统计多种分隔符号的单元格姓名个数
- 数据集-知识图谱:FreeBase(通用知识图谱)【英文】
- 火焰字,通过PS制作炫酷的火焰文字
热门文章
- 两个队列实现一个栈(Java)
- 论中国智慧城市的发展前景
- vue源码 - 调试vue初始化过程
- .NET如何对接PayPal支付
- python支持复数类型以下说法错误的是_关于Python的数字类型,以下选项中描述错误的是...
- mysql 字符串有有乱码 转码_mysql字符转化以及乱码原因
- python计算iv值_python计算IV值
- PRINCE2认证好在哪?
- pythoncad_pythonCAD
- 【JAVA程序设计】(C00005)基于springboot的进存销管理系统