天天看點

MATLAB圖像傾斜校正算法實作:圖像傾斜角檢測及校正|附代碼資料

在本文中,随着多媒體技術的不斷發展,數位相機,高清拍照手機等多媒體裝置己經在人們的生活中占據了越來越重要的地位 ( 點選文末“閱讀原文”擷取完整代碼資料******** ) 。

通過采用圖像處理技術,可以将數位裝置采 集到的文字、圖檔等資訊轉化成其他資訊形勢輸出,例如轉化成音頻輸出己解決視 障患者的視力需求。但是,由于輸入裝置或某些其他因素不可避免地使得采集到的 文本圖像或多或少會出現某種程度的傾斜。是以,傾斜圖像校正是目前文本圖像研 宄領域中十分重要的課題,尤其在數字化、自動化領域。比如,提高OCR(Optical Character Recognition)識别率進而提高文檔自動化處理效率,車牌号碼自動 識别與交通監視,手寫體自動識别,名片自動歸類等。

基于Hough變換的圖像傾斜校正算法

利用Hough變換檢測的邊框,确定邊框直線的傾斜角度,根據傾斜角度旋轉,獲得校正後的圖像。具體步驟如下:

圖像預處理。讀取圖像,轉換為灰階圖像,去除離散噪聲點。

利用邊緣檢測,對圖像中的水準線進行強化處理。

基于Hough變換檢測車牌圖像的邊框,擷取傾斜角度。

根據傾斜角度,對車牌圖像進行傾斜校正。

我們通過matlab解答以下問題:

當相機傾斜拍照時

建立數學模型,并将A校正。

MATLAB圖像傾斜校正算法實作:圖像傾斜角檢測及校正|附代碼資料

首先我們讀取圖像資料,顯示原始彩色圖像

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);      
MATLAB圖像傾斜校正算法實作:圖像傾斜角檢測及校正|附代碼資料

確定它是8位灰階,而不是24位真彩色。通過門檻值二值化圖像。

% 確定它是8位灰階,而不是24位真彩色。
grayImage = rgb2gray(rgbImage);
% 通過門檻值二值化圖像。
binaryImage = grayImage > 128;      
MATLAB圖像傾斜校正算法實作:圖像傾斜角檢測及校正|附代碼資料

用連接配接性标記每個點,是以我們可以對其進行測量提取一個方向

% 用連接配接性标記每個斑點,是以我們可以對其進行測量


%擷取所有blob屬性。


%僅提取一個方向

%旋轉圖像。


% 顯示旋轉的圖像。
subplot(2, 2, 3);
imshow(rotatedImage, []);
title('Rotated Image', 'FontSize', fontSize);      
MATLAB圖像傾斜校正算法實作:圖像傾斜角檢測及校正|附代碼資料

同時我們可以得到傾斜校正的角度。 

MATLAB圖像傾斜校正算法實作:圖像傾斜角檢測及校正|附代碼資料

當相機垂直拍照時

根據B,建立數學模型,将B校正, 求出相機傾斜的角度。01

MATLAB圖像傾斜校正算法實作:圖像傾斜角檢測及校正|附代碼資料

02

MATLAB圖像傾斜校正算法實作:圖像傾斜角檢測及校正|附代碼資料

03

MATLAB圖像傾斜校正算法實作:圖像傾斜角檢測及校正|附代碼資料

04

MATLAB圖像傾斜校正算法實作:圖像傾斜角檢測及校正|附代碼資料

同樣的,我們可以對垂直拍照的圖檔進行矯正。

MATLAB圖像傾斜校正算法實作:圖像傾斜角檢測及校正|附代碼資料
MATLAB圖像傾斜校正算法實作:圖像傾斜角檢測及校正|附代碼資料

将C校正,并說明相機相對于物體的夾角。