文檔圖像傾斜角檢測及校正(二)(Matlab)

文檔圖像傾斜角檢測及校正(二)

  • 最小距離法直線擬合原理
  • Matlab程序

閱讀之前注意:

Hi,你好,我是Cooper Liu,歡迎來到我寫的“文檔圖像校正”系列博客。基於三種原理,我寫了四個實驗性的Matlab驗證程序,以及兩個文檔校正Matlab程序。在這裏你將能夠獲取所有的源代碼以及測試圖片,完全可以在你自己的Matlab上跑這些程序。

如果你是學生,請注意不要抄襲,課程設計作業的話,這種程序僅僅只能讓你得到80%左右的成績。
如果你是工作人士或者只是感興趣的極客,Okay,我想這些程序對於理解原理是如何應用爲程序的已經足夠 。

最後,請勿將這些資源用於商業用途(如你所見,這些程序都非常的初級)或者是謀取個人利益,知識在傳播的過程中能展現更大的價值^-^

本文閱讀建議用時:32min
本文閱讀結構如下表:

項目 下屬項目 測試用例數量
最小距離法直線擬合原理 0
Matlab程序 1

最小距離法直線擬合原理1

最小距離法擬合直線是指,我們設線條上n個特徵點:

(xi,yi),i=1,2,,n
則第i個特徵點到直線 y=kx+b 的垂直距離爲:
|yi(kxi+b)|(1+k2)
因此n個特徵點到直線 y=kx+b 的距離平方和爲:
D(k,b)=i=1n[yi(kxi+b)]21+k2=11+k2i=1n[yi(kxi+b)]2
如果存在kd,bd 使得:
D(kd,bd)=mink,bD(k,b)

則稱kd,bdk,b 的最小距離估計,此方法稱爲最小距離法。
爲了計算和敘述的方便,我們引入以下的記號:
x¯=1ni=1nxiy¯=1ni=1nyiLxx=i=1n(xix¯)2Lyy=i=1n(yiy¯)2
Lxy=i=1n(xix¯)(yiy¯)
利用極值法求得:bd=ykx¯kd=LyyLxx+(LyyLxx)2+4L2xy2Lxy
所以文檔的傾斜角爲:αd=arctan(kd)

Matlab程序

基於以上原理,我編寫了Matlab程序來進行實驗,源代碼可以參考angleDetection2.m文件。測試圖片爲line5.bmp。2
測試圖片可以從這裏獲取,鏈接:https://pan.baidu.com/s/1dGmmGjn 密碼:okt3

以下是實驗結果:
實驗結果
時間

如果您不想打開新的頁面查看matlab源代碼,也可以直接參考以下代碼:

%%本版基於最小距離法直線擬合原理 
%%2018.01.19 by Cooper Liu
%%Questions? Contact me: [email protected]
clear;clc; %清空之前的變量
I=imread('line5.bmp'); %讀取圖像
level=graythresh(I); %使用最大類間方差法找到圖片的一個合適的閾值
bw=im2bw(I,level); %根據閾值,使用im2bw函數將灰度圖像轉換爲二值圖像時
figure(1);imshow(bw);

[m,n]=size(bw); %獲取尺寸
xSum=0;xCount=0;
ySum=0;yCount=0;
tic; %計時開始
for i=1:m
    for j=1:n
        if bw(i,j)==0
           xSum=xSum+i;xCount=xCount+1;
           ySum=ySum+j;yCount=yCount+1;
        end
    end
end
xMean=xSum/xCount;
yMean=ySum/yCount;

Lxx=0;
Lyy=0;
Lxy=0;
for i=1:m
    for j=1:n
        if bw(i,j)==0
          Lxx=Lxx+(i-xMean)^2;
          Lyy=Lyy+(j-yMean)^2;
          Lxy=Lxy+(i-xMean)*(j-yMean);
        end
    end
end
toc %獲取計時時間
tmp=((Lyy-Lxx) + nthroot((Lyy-Lxx)^2 + 4*Lxy^2, 2))/(2*Lxy);
if isnan(tmp) 
    tmp=inf; %如果求得tmp是NaN,那麼不需要旋轉
end
%tmp=atan(2*Lxy/(Lxx-Lyy))/2; %如果傾斜角相對於水平超過正負45
angle=atan(tmp); %用atan求出來的角度在-pi/2到+pi/2之間
angle=angle*180/pi

rot=90-angle;
pic=imrotate(I,rot,'crop'); %旋轉圖像
figure(2);imshow(pic);


  1. 參考文獻:[1] 荊雷,張欣,郭金鑫.基於版面的拍照文檔圖像傾斜校正.激光與紅外[J].2010,第10期
  2. 同時感謝願意在網絡上分享自己想法的各位博主。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章