随着多媒体技术的不断发展,数码相机,高清拍照手机等多媒体设备己经在人们的生活中占据了越来越重要的地位。
通过采用图像处理技术,可以将数码设备采 集到的文字、图片等信息转化成其他信息形势输出,例如转化成音频输出己解决视 障患者的视力需求。但是,由于输入设备或某些其他因素不可避免地使得采集到的 文本图像或多或少会出现某种程度的倾斜。因此,倾斜图像校正是当前文本图像研 宄领域中十分重要的课题,尤其在数字化、自动化领域。比如,提高OCR(Optical Character Recognition)识别率从而提高文档自动化处理效率,车牌号码自动 识别与交通监视,手写体自动识别,名片自动归类等。
基于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校正,并说明相机相对于物体的夹角。