图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正

最近我们被客户要求撰写关于图像倾斜校正算法的研究报告。

由Kaizong Ye,Coin Ge撰写

通过采用图像处理技术,可以将数码设备采 集到的文字、图片等信息转化成其他信息形势输出,例如转化成音频输出己解决视 障患者的视力需求。

但是,由于输入设备或某些其他因素不可避免地使得采集到的 文本图像或多或少会出现某种程度的倾斜。因此,倾斜图像校正是当前文本图像研 宄领域中十分重要的课题,尤其在数字化、自动化领域。比如,提高OCR(Optical Character Recognition)识别率从而提高文档自动化处理效率,车牌号码自动 识别与交通监视,手写体自动识别,名片自动归类等。

基于Hough变换的图像倾斜校正算法

利用Hough变换检测的边框,确定边框直线的倾斜角度,根据倾斜角度旋转,获得校正后的图像。具体步骤如下:

图像预处理。读取图像,转换为灰度图像,去除离散噪声点。
利用边缘检测,对图像中的水平线进行强化处理。
基于Hough变换检测车牌图像的边框,获取倾斜角度。
根据倾斜角度,对车牌图像进行倾斜校正。

我们通过matlab解答以下问题:


课程

R语言数据分析挖掘必知必会

从数据获取和清理开始,有目的的进行探索性分析与可视化。让数据从生涩的资料,摇身成为有温度的故事。

立即参加

当相机倾斜拍照时

建立数学模型,并将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校正, 求出相机倾斜的角度。

同样的,我们可以对垂直拍照的图片进行矫正。


R语言基于Keras的小数据集深度学习图像分类

阅读文章


将C校正,并说明相机相对于物体的夹角。


随时关注您喜欢的主题



可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498