• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于OpenCV實現(xiàn)文檔物體的糾偏方法

      2016-11-14 00:56:12王咸鋒黃妙燕
      電腦知識與技術(shù) 2016年24期
      關(guān)鍵詞:糾偏攝像頭可視化

      王咸鋒 黃妙燕

      摘要:由于高拍儀設(shè)備自身拍攝的特點,以及被拍攝物體擺放不當(dāng)?shù)仍?,所拍攝的圖像邊緣經(jīng)常會出現(xiàn)偏斜。該文提供的方法是先從視頻流中實時取到圖像;然后對圖像進(jìn)行去噪點;再把圖像進(jìn)行二值化;利用Hough變換找到直線,計算直線的角度,直線的角度就是圖需要旋轉(zhuǎn)的角度;對四條直線方程進(jìn)行規(guī)整,輸出四條直線圍成的矩形;最后將矩形實時的顯示在視頻上,并在視頻上通過畫方框的方式將結(jié)果顯示出來,矩形顯示成功表示糾偏成功,有效保證用戶一次拍圖就能夠獲取自己想要的圖像。

      關(guān)鍵詞:攝像頭;可視化;糾偏;二值化;OpenCV

      中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)24-0087-03

      1 背景

      目前常見的電腦周邊辦公設(shè)備如高拍儀,是一種視頻輸入設(shè)備,被廣泛地運用于辦公掃描,教育、展示等方面。通過高拍儀獲取的文檔影像進(jìn)行處理日益成為人們研究的熱點。在銀行、電信、公安、公積金、財稅、證券等行業(yè), 票據(jù)及證件的電子影像系統(tǒng)已經(jīng)出現(xiàn),這些系統(tǒng)通常以票據(jù)及證件的拍攝圖像作為輸入。在拍攝輸入的過程中, 由于擺放不當(dāng)、紙張折疊及其他各種因素, 拍攝得到的圖像總是偏斜,在具體應(yīng)用中,將文檔糾正,然后用去黑邊算法去掉周圍的黑邊。高拍儀作為一種新型掃描設(shè)備,已經(jīng)躋身掃描市場,但是通過高拍儀掃描的圖像噪點較多、亮度不均勻,使得基于傳統(tǒng)掃描儀的糾偏算法失效;同時,由于高拍儀是開放環(huán)境、光線變化很大,文檔放置很隨意,所以不能百分百保證糾偏成功,給用戶帶來很大困惑。

      為了解決以上問題,本文提供一種在高拍儀的可視化下基于OpenCV糾偏的方法,有效保證用戶一次拍圖就能夠獲取自己想要的圖像,同時給用戶一種新的用戶體驗。

      2 概述

      在一個高拍儀處理系統(tǒng)中,獲得實時圖像后,一般要進(jìn)行預(yù)處理。在公安、電信、公積金等行業(yè)的票據(jù)及證件電子影像系統(tǒng)、汽車牌照的抓拍識別系統(tǒng)以及OCR識別等系統(tǒng)中,通過高拍儀輸入設(shè)備獲得的圖像由于擺放等原因,物體會產(chǎn)生一定的斜角,斜角會給圖像處理與分析時帶來更大的難度,使處理變慢,用戶體驗差,因此,糾正斜角是圖像預(yù)處理的重要工作。

      糾偏校正的核心在于如何檢測出圖像的偏角。目前,糾偏角度的檢測方法有許多種,主要可分為5 類:Hough變換法,交叉相關(guān)性方法,投影法,F(xiàn)ourier變換法和最近鄰簇法。

      Hough變換法是最簡單常用的檢測偏角方法,但是Hough算法計算量大,因此一些專門用于糾偏角檢測的Hough變換改進(jìn)算法被提出來,雖然這些算法的核心思想是減少Hough變換的計算量,但算法的速度仍較慢;交叉相關(guān)性法矩陣的計算量較大,體驗差,不適合用于辦公等日常應(yīng)用,但準(zhǔn)確率高;投影法利用投影的某些特征進(jìn)行判斷,需要對整個圖像統(tǒng)計特征值,因此計算量和復(fù)雜度都較高;Fourier法是將文檔圖像的所有像素點進(jìn)行Fourier變換,計算量更大,目前已被棄用;最近鄰簇(KNN) 法算法太過復(fù)雜,且運行速度慢,計算量大。本文使用的是基于OpenCV庫的Hough算法。

      3 OpenCV簡介

      OpenCV是Intel開源的計算機(jī)視覺庫(open source computer vision library)的簡稱,目前已經(jīng)發(fā)展成為圖像預(yù)處理的標(biāo)準(zhǔn),適用于不同的操作系統(tǒng)和平臺,包括移動平臺等,如安卓等等。OpenCV庫由C函數(shù)和C++函數(shù)構(gòu)成,實現(xiàn)了在圖像處理以及計算機(jī)視覺方面的許多通用算法,主要對圖像進(jìn)行如運動檢測、跟蹤、分割、識別以及3D重建等高級處理。OpenCV庫有300多個跨平臺的中、高層API(C函數(shù)),C函數(shù)不依賴外部庫,但可以使用外部庫。由于OpenCV庫是開放源碼且代碼簡潔高效,其中大多數(shù)函數(shù)都經(jīng)過匯編最優(yōu)化,所以能充分利用英特爾系列的芯片的設(shè)計體系,因而對于英特爾系列芯片,OpenCV庫的代碼執(zhí)行效率是非常高的。OpenCV庫具有快速的圖像運算能力和強(qiáng)大的矩陣運算能力,并且具有詳細(xì)、簡潔的圖像和矩陣用戶接口。OpenCV已發(fā)布了多個版本,最新的版本支持主流的操作系統(tǒng),包括PC端和移動端的操作系統(tǒng),為開發(fā)者提供了開發(fā)便利,大大提升了開發(fā)效率,并且圖像算法穩(wěn)定可靠。本文程序運行環(huán)境為:Windows+VS2012+OpenCV 2.0+DirectShow9.0。

      4 核心算法流程

      本方法可以實時運行糾偏算法,并在高拍儀視頻上通過畫方框的方式將結(jié)果顯示出來。具體地,先從視頻流中實時取到圖像;然后對圖像進(jìn)行去噪點;再把圖像進(jìn)行二值化;利用Hough變換找到直線,計算直線的角度,直線的角度就是圖需要旋轉(zhuǎn)的角度;對四條直線方程進(jìn)行規(guī)整,輸出四條直線圍成的矩形;最后將矩形實時的顯示在視頻上。

      4.1 從攝像頭中實時獲取圖像

      實時顯示是本方法的一個重要特色,為了做到實時顯示,我們對高拍儀所傳輸?shù)拿恳粠瑘D像都進(jìn)行處理,同時保證處理時間在20ms以內(nèi),這樣就可以保證實時計算,實時框選,當(dāng)用戶移動紙張,或者掃描文檔有變化的時候,會及時跟蹤并框選當(dāng)前文檔,讓視頻跟畫框同步。實時顯示讓用戶掃描起來更便利,更快捷。

      把圖像讀進(jìn)內(nèi)存,由于處理的是文本、表格等文檔,彩色信息在處理過程中并沒有作用,所以把內(nèi)存中的圖像進(jìn)行二值化處理,以灰度形式顯示。讀取的圖像如下:

      為了能更好地模擬旋轉(zhuǎn)效果,在放置拍照文檔時隨意傾斜一定的角度,以便給后面處理。

      4.2 去噪點——對圖像進(jìn)行平滑處理

      在對圖像進(jìn)行平滑處理時,需要注意的是在用窗口掃描圖像過程中,對于圖像四個邊緣的像素點可以不處理,也可以使用灰度值為0的像素點擴(kuò)展圖像的邊緣。為了使編程工作簡單,可以預(yù)先定義一個的模板數(shù)組。對于小的卷積核(從3x3到7x7),使用上述計算標(biāo)準(zhǔn)sigma的公式速度會更快。本文使用OpenCV的cvSmooth函數(shù)來平滑圖像,為圖像的二值化做好準(zhǔn)備。

      4.3 圖像二值化

      二值化之前,為了提高處理速度,首先對圖像進(jìn)行縮放,這樣就能保證圖像處理的實時顯示。

      設(shè)定一個閾值T是圖像二值化最常用的方法,用閾值T將圖像的數(shù)據(jù)分成兩部分:簡單地說就是將整個圖像呈現(xiàn)出只有黑和白的視覺效果,大于T的像素群是黑的,小于T的像素群是白的,將圖像上的像素點的灰度值設(shè)置為0或255。 但是此方法確定的閥值得到的二值化在光線變化和亮度不均勻的時候效果很差,不能商用。本文使用迭代法求閾值:預(yù)先設(shè)置一個經(jīng)過學(xué)習(xí)的閾值T,對圖像中灰度值>T的像素點求出灰度平均值T1,圖像中灰度值

      本文中的二值化使用OpenCV的cvThreshold函數(shù),該函數(shù)的典型應(yīng)用是對灰度圖像進(jìn)行閾值操作得到二值圖像,函數(shù)中的閥值使用上面迭代法求得。

      4.4 利用Hough變換找到直線

      為了準(zhǔn)確找到直線,我們首先采用Canny算法尋找輸入圖像的邊緣,并在輸出圖像中標(biāo)志這些邊緣,Canny算法的核心包括以下幾個步驟:

      1)用高斯濾波器平滑圖像。

      2)用一階偏導(dǎo)的有限差分計算梯度的幅值和方向。

      3)對梯度幅值進(jìn)行非極大值抑制。

      4)用雙閥值算法檢測和連接邊緣。

      5)采用高斯平滑函數(shù)。

      本文中的找邊和找直線使用OpenCV庫的cvCanny函數(shù)和cvHoughLines2函數(shù)。依次遍歷找到的直線,計算找到直線的角度,判斷是否已找完所有直線,如已找完,計算需要旋轉(zhuǎn)的角度,如圖4所示,操作流程如下:

      當(dāng)所拍攝物體傾角大于 45°時,進(jìn)行糾偏旋轉(zhuǎn)有兩種情況選擇,逆時針旋轉(zhuǎn)使物體豎起來,或順時針旋轉(zhuǎn)使物體橫向放置。為簡化操作和提升效率,算法中增加偏角限制為 45°,即在Hough變換中找到的直線角度大于 45°時,不進(jìn)行直線的統(tǒng)計與運算,只運算 1/4 的角度,可提升4倍的運算效率。

      通過Canny算法找邊和對邊進(jìn)行Hough變換,會得到四條直線,通過四條直線構(gòu)建一個四邊形,在界面上顯示出來構(gòu)建的矩形,如果能在界面上顯示出來構(gòu)建的矩形,則認(rèn)為糾偏成功,如果不能在界面上顯示出來構(gòu)建的矩形,就認(rèn)為糾偏失敗。

      5 結(jié)束語

      采用本文所述的方案能夠?qū)崿F(xiàn)高拍儀可視化下穩(wěn)定的糾偏,這使得高拍儀相對于普通拍攝儀的一個優(yōu)點在于可視化,可實時顯示拍攝的內(nèi)容,糾偏結(jié)果可視化,帶來了非常友好的用戶體驗,讓用戶知道將要掃描的文檔是否可以正常完成糾偏操作,告知用戶將要糾偏哪些內(nèi)容,真正做到所見即所得,保證用戶一次拍圖就能夠獲取自己想要的圖像,將高拍儀可視化的優(yōu)點提到一個新的高度,同時給用戶一種新的用戶體驗。糾偏的效果如下圖所示:

      參考文獻(xiàn):

      [1] 劉瑞禎, 于仕琪. OpenCV 教程[M]. 北京: 北京航空航天大學(xué)出版社, 2009.

      [2] 左飛, 萬晉森, 劉航. Visual C++ 數(shù)字圖像處理開發(fā)入門與編程實踐[M]. 北京: 電子工業(yè)出版社, 2008.

      [3] 江超, 艾矯燕. 基于OpenCV的攝像頭動態(tài)手勢軌跡識別及其應(yīng)用[J]. 計算機(jī)應(yīng)用, 2012(1): 129-133.

      [4] 賈小軍, 喻擎蒼. 基于開源計算機(jī)視覺庫OpenCV的圖像處理[J]. 計算機(jī)應(yīng)用與軟件, 2008(4): 276-278.

      猜你喜歡
      糾偏攝像頭可視化
      浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
      基于CiteSpace的足三里穴研究可視化分析
      攝像頭連接器可提供360°視角圖像
      基于Power BI的油田注水運行動態(tài)分析與可視化展示
      云南化工(2021年8期)2021-12-21 06:37:54
      基于CGAL和OpenGL的海底地形三維可視化
      “融評”:黨媒評論的可視化創(chuàng)新
      傳媒評論(2019年4期)2019-07-13 05:49:14
      芻議小學(xué)信息技術(shù)課堂中“游戲教學(xué)法”的運用與糾偏
      一種小型無人機(jī)滑跑糾偏控制研究
      科技資訊(2015年20期)2015-10-15 19:57:06
      學(xué)生物理偏科問題的“糾偏”策略
      奔馳360°攝像頭系統(tǒng)介紹
      兴海县| 黄浦区| 定襄县| 加查县| 石家庄市| 钦州市| 当阳市| 平果县| 嘉祥县| 阳谷县| 广德县| 丰宁| 台南县| 松潘县| 麻阳| 澳门| 句容市| 黑河市| 柳州市| 玉溪市| 抚州市| 松溪县| 承德市| 丹巴县| 常宁市| 长沙县| 来凤县| 庐江县| 绿春县| 商丘市| 枞阳县| 镇雄县| 文水县| 濮阳市| 侯马市| 公主岭市| 峨眉山市| 迁西县| 砚山县| 贵德县| 怀远县|