最近我们被客户要求撰写关于图像倾斜校正算法的研究报告。
通过采用图像处理技术,可以将数码设备采 集到的文字、图片等信息转化成其他信息形势输出,例如转化成音频输出己解决视 障患者的视力需求。
可下载资源
但是,由于输入设备或某些其他因素不可避免地使得采集到的 文本图像或多或少会出现某种程度的倾斜。因此,倾斜图像校正是当前文本图像研 宄领域中十分重要的课题,尤其在数字化、自动化领域。比如,提高OCR(Optical Character Recognition)识别率从而提高文档自动化处理效率,车牌号码自动 识别与交通监视,手写体自动识别,名片自动归类等。
理想的情况下,采集的图像是一个与水平方向平行的矩形。由于摄像机拍摄角度、镜头距离等因素造成采集的图像存在一定倾斜,因此需对图像进行倾斜校正,为后续的车牌分割和车牌识别提供良好基础。 目前,车牌图像倾斜校正的方法主要有直线检测、投影最值、角点检测和主成分分析等方法。
(1)基于直线检测的倾斜校正方法主要有最小二乘拟合法、Hough变换和Radon变换法,这些方法通过检测车牌边框的直线完成校正,算法简单。
(2)基于投影最值的倾斜校正通过投影法完成校正,抗干扰能力强。
(3)基于角点检测的倾斜校正利用角点特点——可以以最少信息表示事物的主要特征,可以有效地完成车牌倾斜校正。
(4)基于主成分分析的倾斜校正通过分析车牌主要特征完成倾斜校正,可以简化计算量,校正的实时性较好。这4种方法都可以完成车牌倾斜校正,但都对光线明暗敏感。
基于Hough变换的图像倾斜校正算法
利用Hough变换检测的边框,确定边框直线的倾斜角度,根据倾斜角度旋转,获得校正后的图像。具体步骤如下:
图像预处理。读取图像,转换为灰度图像,去除离散噪声点。
利用边缘检测,对图像中的水平线进行强化处理。
基于Hough变换检测车牌图像的边框,获取倾斜角度。
根据倾斜角度,对车牌图像进行倾斜校正。
我们通过matlab解答以下问题:
当相机倾斜拍照时
建立数学模型,并将A校正。
首先我们读取图像数据,显示原始彩色图像
clc; % 清除命令窗口。
clearvars;
close all; % 关闭所有数字(不包括imtool的数字。)
imtool close all; % Close all imtool figures.
workspace; % 关闭所有固定工具的数字
fontSize = 20;
format compact;
baseFileName = '附件B.jpg';
% 获取完整的文件名,并添加路径
fullFileName = fullfile( baseFileName);
rgbImage = imread(fullFileName);
% 获取图像的尺寸。 numberOfColorBands应该为3。
[rows columns numberOfColorBands] = size(rgbImage);
% 显示原始彩色图像
subplot(2, 2, 1);
imshow(rgbImage, []);
title('Original Color Image', 'FontSize', fontSize);
确保它是8位灰度,而不是24位真彩色。通过阈值二值化图像。
% 确保它是8位灰度,而不是24位真彩色。
grayImage = rgb2gray(rgbImage);
% 通过阈值二值化图像。
binaryImage = grayImage > 128;
用连接性标记每个点,因此我们可以对其进行测量提取一个方向
% 用连接性标记每个斑点,因此我们可以对其进行测量
%获取所有blob属性。
%仅提取一个方向
%旋转图像。
% 显示旋转的图像。
subplot(2, 2, 3);
imshow(rotatedImage, []);
title('Rotated Image', 'FontSize', fontSize);
同时我们可以得到倾斜校正的角度。
当相机垂直拍照时
根据B,建立数学模型,将B校正, 求出相机倾斜的角度。
同样的,我们可以对垂直拍照的图片进行矫正。
将C校正,并说明相机相对于物体的夹角。
随时关注您喜欢的主题
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!