OpenCV图像矫正

一、整体矫正

1. 针对边缘比较明显的图片,使用基于轮廓提取的矫正方法。

基本步骤:

OpenCV图像矫正_第1张图片

1)变为灰度图;

2)Canny边缘检测:

Canny算法的基本思想是寻找一张图片中灰度强度变化最强(梯度方向)的位置;

OpenCV图像矫正_第2张图片

3)使用 OpenCV 的 findcontours() 提取轮廓(一个轮廓对应一组点集);

4)根据轮廓求最小外包四边形(一个四边形对应四个点坐标);

OpenCV图像矫正_第3张图片

5)筛选得到的四边形(面积最大、各角接近90°等),存储四个顶点坐标;

OpenCV图像矫正_第4张图片

6)根据顶点变换得到矫正后的图片。 

OpenCV图像矫正_第5张图片

2. 针对边缘不明显,但排列相对整齐的文本图片,使用基于霍夫直线探测的矫正方法。

 OpenCV图像矫正_第6张图片

基本步骤:

1)变为灰度图;

2)Canny边缘检测;

OpenCV图像矫正_第7张图片

3)使用 OpenCV 的 HoughLines() 函数检测直线(在极坐标系下用 \theta 和 r 表示);

OpenCV图像矫正_第8张图片

OpenCV图像矫正_第9张图片

4)计算倾斜角度的平均值,根据倾斜角度进行变换。

OpenCV图像矫正_第10张图片

二、部分矫正

与整体矫正部分相同。

基本步骤:

OpenCV图像矫正_第11张图片

1)变为灰度图;

OpenCV图像矫正_第12张图片

2)Canny 边缘检测;

OpenCV图像矫正_第13张图片

3)轮廓提取;

4)根据轮廓求最小外包矩形;

OpenCV图像矫正_第14张图片

5)矫正每个矩形(单词)并覆盖原矩形(单词)。

你可能感兴趣的:(OCR,opencv,计算机视觉)