本文总结了11种常用的图像处理算法,包括预处理算法和检测算法,介绍了常用的开发库。
一、算法(预处理算法、检验算法)。
导入图像后,首先对图像进行预处理操作。 保证图像对比度清晰、水平。 便于后续的图像处理。
常见的图像处理算法:
1、图像转换(空域与频域、几何变换、色度变换、尺度变换)
几何变换:图像平移、旋转、反射镜、旋转;
比例变换:图像缩放、插值算法(最近邻插值、线性插值、双立方插值);
空间域与频域之间的变换:由于图像排列较大,直接在空间域处理计算量较大。 因此,有时需要将空间区域转换成频域来进行处理。 举例来说,间接处理技术(例如,傅立叶变换、沃尔什变换、离散馀弦变换等)不仅可通过将空间域处理转换为频域处理来减少计算量,还可获得更有效率的处理(例如,傅立叶变换或频域数字滤波)
2、图像增强不考虑图像质量下降的原因,强调图像中感兴趣的部分。 增强图像的高频成分,可以使图像中物体的轮廓清晰,细节清晰; 增强低频分量可以降低图像中噪声的影响。
灰度变换强调(线性灰度变换、分段线性灰度变换、非线性灰度变换);
直方图强调(直方图统计、直方图均衡化);
图像平滑/降噪(邻域平均法、加权平均法、中值滤波器、非线性平均滤波器、jpdrg滤波器、双边滤波器);
图像(边缘)锐化:梯度锐化、Roberts运算符、Laplace运算符、Sobel运算符等;
3、纹理分析(取骨架、连通性) 4、图像分割图像分割是提取图像中有意义的特征部分,其有意义的特征是图像中的边缘、区域等,这是进一步进行图像识别、分析、理解的基础。
(1)阈值分割)固定阈值分割、最佳/OTSU阈值分割、自适应阈值分割);
(2)边界分割(Canny边缘检测、轮廓提取、边界跟踪);
)3) Hough变换(直线检测、圆检测);
(4)分区)分区生长、分区整合与分裂、分簇);
)5)颜色分割
)6)分水岭分割
5、影像特征(1)几何特征:位置与方向、周长、面积、长轴与短轴、距离(欧式距离、街区距离、棋盘格距离);
(2)形状特征;几何形态分析(Blob分析);矩形度、圆度、不变力矩、偏心率、多边形描述、曲线描述);
(3)振幅特性)力矩、投影);
(4)直方图特征;统计特征)均值、方差、能量、熵、L1范数、L2范数等; 直方图特征方法在表面检测、缺陷识别中有很多应用,如计算简单、平移和旋转不变性,对彩色像素的精确空间分布不敏感等。
)5)颜色特征(颜色直方图、颜色力矩) ) ) )。
(6)局部二进制模式(LBP )特点: LBP对光照变化等引起的图像灰度变化具有较强的鲁棒性,应用于表面缺陷检测、指纹识别、光学字符识别、人脸识别、车牌识别等领域。 LBP计算简单,也可用于实时检测。
6、图像/模板匹配轮廓匹配、归一化乘积相关灰度匹配、不变矩匹配、最小均方误差匹配
7、色彩分析饱和度、颜色密度、光谱、颜色直方图、自动白平衡
8 .图像数据编码压缩和传输图像编码压缩技术能够减少描述图像的数据量(即,位数),从而节省图像传输、处理时间和减少占用存储器容量。 压缩可以在不失真的情况下进行,也可以在允许的失真条件下进行。 编码是压缩技术中最重要的方法和图像处理技术中发展最成熟的技术。
9、表面缺陷目标识别算法传统方法:贝叶斯分类、k最近邻(KNN )、人工神经网络(ANN )、支持向量机)、k均值等;
10、图像分类(识别)图像分类(识别) )属于模式识别范畴,其主要内容是对图像进行某些预处理(增强、恢复、压缩),然后进行图像分割和特征提取,进行判决分类。
11、图像复原图像复原需要对图像质量下降的原因有一定的了解。 一般来说,需要根据质量下降过程建立“质量下降模型”,并采用某种滤波方法恢复或重建原始图像。
二、现有的视觉检测软件/库1、做工业视觉检测的公司有哪些?
著名的有大恒影像(亚洲Halcon最大代理商)、凌云光技术) VisionPro视觉平台(印刷、3C电子、显示器、玻璃、电路板检测)、大家庭激光)、视觉激光焊接、
可二次开发的视觉系统: Labview、DVT、Halcon、OpenCV等。
2、常用视觉检测软件/库视觉开发软件工具Halcon、VisionPro、LabView、OpenCV,以及eVision、Mil、Sapera等。
(一)Halcon
基本功能算法多,运算性能快,功能齐全,使用方便,开发项目周期短。 不是开源项目,而是商用费用,价格很高。
Halcon:Halcon是德国MVtec公司开发的完善的标准机器视觉算法软件包,具有广泛的机器视觉集成开发环境。 这是一套image
processing library,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中包含了各类滤波,色彩以及几何,数学转换,型态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能。整个函数库可以用C,C++,C#,Visual basic和Delphi等多种普通编程语言访问。Halcon为大量的图像获取设备提供接口,保证了硬件的独立性。
(二)OpenCV
功能算法相对较多(比Halcon少),开源,可用于商用,开发周期较长(比Halcon长),有些算法要自己写。
OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。其核心轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言。该库也有大量的Python, Java and MATLAB/OCTAVE的接口,如今也提供对于C#, Ruby的支持。OpenCV可以在 Windows, Android, Maemo, FreeBSD, OpenBSD, iOS,Linux 和Mac OS等平台上运行。
OpenCV出身:OpenCV是Intel开源计算机视觉库。其核心由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 的特点拥有包括300多个C函数的跨平台的中、高层 API 跨平台:Windows, Linux;免费(FREE):无论对非商业应用和商业应用;速度快;使用方便。
OpenCV具有以下的特征:
(1)开源计算机视觉采用C/C++编写。
(2)使用目的是开发实时应用程序。
(3)独立与操作系统、硬件和图形管理器。
(4)具有通用的图象/视频载入、保存和获取模块。
(5)具有底层和高层的应用开发包。
应用OpenCV能够实现以下功能:
(1)对图象数据的操作,包括分配、释放、复制和转换数据。
(2)对图象和视频的输入输出,指文件和摄像头作为输入,图象和视频文件作为输出。
(3)具有对距耍酷的朋友向量的操作以及线性代数的算法程序,包括距阵、解方程、特征值以及奇异值。
(4)可对各种动态数据结构,如列表、队列、集合、树和图等进行操作。
(5)具有基本的数字图象处理能力,如可进行滤波、边缘检测、角点检测、采样与差值、色彩转换、形态操作、直方图和图象金字塔等操作。
(6)可对各种结构进行分析,包括连接部件分析、轮廓处理、距离变换、各种距的计算、模板匹配、Hongh变换、多边形逼近、直线拟合、椭圆拟合和Delaunay三角划分等。
(7)对摄像头的定标,包括发现与跟踪定标模式、定标、基本矩阵估计、齐次矩阵估计和立体对应。
(8)对运动的分析,如对光流、运动分割和跟踪的分析。
(9)对目标的识别,可采用特征法和隐马尔科夫模型(HMM)法。
(10)具有基本的GUI功能,包括图像与视频显示、键盘和鼠标事件处理及滚动条等。
(11)可对图像进行标注,如对线、二次曲线和多边形进行标注,还可以书写文字(目前之支持中文)。
(三)VisionPro
VisionPro是美国康耐视Cognex公司提供全套视觉解决方案。VisionPro提供多种开发工具拖放式界面、简单指令码和编程方式等,全面支持所有模式的开发。用户利用VisionPro QuickBuild™可以无需编程配置读取、选择并优化视觉工具,决定产品是否合格。用户也可以利用C++、C#、VB及.NET开发管理应用程序。Vision Pro提供的.NET程序接口允许用户采用面向对象的高级语言编程访问所有工具,以高效开发客户的专用视觉方案。
(四)LabView
LabView是一种程序开发环境,由美国国 家仪器(NI)公司研制开发,使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。LabView软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。LabView开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。
三、HSV颜色识别-HSV基本颜色分量范围
一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。
H: 0 — 180
S: 0 — 255
V: 0 — 255
HSV(色度/饱和度/亮度)颜色空间是表示类似于RGB颜色模型的颜色空间的模型。根据色度通道(Channel)对颜色类型进行建模,因此在需要根据颜色对对象进行分割的图像处理任务中非常有用。饱和度的变化代表颜色成分的多少。亮度通道描述颜色的亮度。
转载博文
一文概括常用图像处理算法以及常用开发库
快三大小单双稳赚买法平台:Windows, Linux;免费(FREE):无论对非商业应用和商业应用;速度快;使用方便。
OpenCV具有以下的特征:
(1)开源计算机视觉采用C/C++编写。
(2)使用目的是开发实时应用程序。
(3)独立与操作系统、硬件和图形管理器。
(4)具有通用的图象/视频载入、保存和获取模块。
(5)具有底层和高层的应用开发包。
应用OpenCV能够实现以下功能:
(1)对图象数据的操作,包括分配、释放、复制和转换数据。
(2)对图象和视频的输入输出,指文件和摄像头作为输入,图象和视频文件作为输出。
(3)具有对距耍酷的朋友向量的操作以及线性代数的算法程序,包括距阵、解方程、特征值以及奇异值。
(4)可对各种动态数据结构,如列表、队列、集合、树和图等进行操作。
(5)具有基本的数字图象处理能力,如可进行滤波、边缘检测、角点检测、采样与差值、色彩转换、形态操作、直方图和图象金字塔等操作。
(6)可对各种结构进行分析,包括连接部件分析、轮廓处理、距离变换、各种距的计算、模板匹配、Hongh变换、多边形逼近、直线拟合、椭圆拟合和Delaunay三角划分等。
(7)对摄像头的定标,包括发现与跟踪定标模式、定标、基本矩阵估计、齐次矩阵估计和立体对应。
(8)对运动的分析,如对光流、运动分割和跟踪的分析。
(9)对目标的识别,可采用特征法和隐马尔科夫模型(HMM)法。
(10)具有基本的GUI功能,包括图像与视频显示、键盘和鼠标事件处理及滚动条等。
(11)可对图像进行标注,如对线、二次曲线和多边形进行标注,还可以书写文字(目前之支持中文)。
(三)VisionPro
VisionPro是美国康耐视Cognex公司提供全套视觉解决方案。VisionPro提供多种开发工具拖放式界面、简单指令码和编程方式等,全面支持所有模式的开发。用户利用VisionPro QuickBuild™可以无需编程配置读取、选择并优化视觉工具,决定产品是否合格。用户也可以利用C++、C#、VB及.NET开发管理应用程序。Vision Pro提供的.NET程序接口允许用户采用面向对象的高级语言编程访问所有工具,以高效开发客户的专用视觉方案。
(四)LabView
LabView是一种程序开发环境,由美国国 家仪器(NI)公司研制开发,使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。LabView软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。LabView开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。
三、HSV颜色识别-HSV基本颜色分量范围
一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。
H: 0 — 180
S: 0 — 255
V: 0 — 255
HSV(色度/饱和度/亮度)颜色空间是表示类似于RGB颜色模型的颜色空间的模型。根据色度通道(Channel)对颜色类型进行建模,因此在需要根据颜色对对象进行分割的图像处理任务中非常有用。饱和度的变化代表颜色成分的多少。亮度通道描述颜色的亮度。
转载博文
一文概括常用图像处理算法以及常用开发库