图像处理和预处理首先选择的是opencv库,这里简单介绍一下预处理的方法和改进思路,开源方法可以学习其中的算法思路。并进行改进,因为opencv本身的计算速度效率都有提升空间。
以常见的图像预处理手段为例,二值化,自适应二值化,腐蚀膨胀开闭运算,边缘检测,梯度计算,直方图,特征提取,特征匹配,图像金字塔,连通域计算,直线拟合,圆拟合,模板匹配,卷积模板制作,高斯滤波,图像变换,傅里叶变换,矩阵运算等处理方法都可以用opencv实现,只需要调用其api即可,但是只会调用未免太过简单,了解了背后图像计算原理后完全可以对其进行改进或者自己实现。
把图像看作为像素点的集合,每个像素点以灰度表示,分布范围在0-255之间。可以用mat类型或者uint8数组直接操作图像数据以完成算法目标。算法的设计步骤可以是认为规定步骤的设计,包括如何提取像素,如何根据不同像素之间的灰度值差异设计特别的提取特征方法。或者如何设计将数学公式运用于图像数据的处理,都是前期的处理思路。也可以根据论文的描述方法,总结出计算步骤,依次按步骤实现,只要计算准确无误,最终都能得到所期望的结果。
二值化可以根据灰度阈值范围选择特定阈值的像素点和索引,保存到新的mat或数组空间中。自适应二值化可以根据公式,遍历每个图像像素,分别对每个像素进行操作。腐蚀膨胀和开闭运算可以通过用3x3的窗口遍历每个像素区域,作最大值最小值判断等方法实现,边缘检测可以用链码实现也可以用原图像减去腐蚀后的图像得到边缘检测结果,也可以仿照canny的计算方法分别实现sobel算子&#x