一種圖像方向校正方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種圖像方向校正方法,包括:判斷圖像中是否檢測到條形碼,若檢測到至少存在一個條形碼,分別以每個條形碼的方向角度為中心角度,在旋轉角度范圍內(nèi),每隔一個旋轉角度旋轉一次圖像;檢測每一次旋轉旋轉角度后的圖像中是否存在文字,若是,則識別圖像中所存在的文字,計算并獲取每一次旋轉旋轉角度后所對應的文字置信度;判斷每一次旋轉旋轉角度后所對應的文字置信度是否存在大于預設閾值的文字置信度,若存在,選擇文字置信度最高對應的圖像旋轉角度,將其設定為圖像校正角度;若否,則選擇任一條形碼的方向角度為圖像校正角度,根據(jù)圖像校正角度校正圖像方向。本發(fā)明既可減少圖像旋轉誤判可能性,同時又可快速準確判斷校正圖像方向。
【專利說明】一種圖像方向校正方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明屬于圖像處理【技術領域】,涉及一種校正方法及系統(tǒng),特別是涉及一種圖像方向校正方法及系統(tǒng)。
【背景技術】
[0002]21世紀是一個充滿信息的時代,圖像作為人類感知世界的視覺基礎,是人類獲取信息、表達信息和傳遞信息的重要手段。隨著人類對圖像的廣泛應用,數(shù)字圖像處理技術也隨之應運而生,所謂數(shù)字圖像處理就是利用計算機對圖像信息進行加工以滿足人的視覺心理或者應用需求的行為。實質上是一段能夠被計算機還原顯示和輸出為一幅圖像的數(shù)字碼。
[0003]近年,圖像相關的應用日益增多,常見的需求有信息利用圖像形式保存,圖像索弓丨、圖像分類、提取圖像中有意義的信息等。由于數(shù)碼相機,掃描儀等數(shù)字成像設備的應用越來越廣泛,目前自帶的數(shù)碼相機已經(jīng)成為了手機等移動設備的標準配置了。這些數(shù)字成像設備經(jīng)常被用來掃描或者拍攝包括文本圖像,人物圖像,風景照片在內(nèi)的各種圖片。由于掃描或拍攝者的使用習慣,拍攝角度,取景需求、保存方向等的不同,在瀏覽或后期處理,掃描或拍攝得到的數(shù)字影像經(jīng)常是帶有90度,180度,或270度的旋轉角度的,掃描或拍攝得到的文本圖像更是可能帶有O度到360度之間任意角度的旋轉,用戶在瀏覽這樣的數(shù)字圖片時需要使用圖像瀏覽工具如acdSee、photoshop等進行校正圖像方向。日常生活中,人們需要查看正確方向的圖像;商務工作中,對各類文檔的識別和歸檔也需要對圖像方向做校正。研究工作中,OCR識別等,也需要正確的圖像方向校正。文字信息可以更有效地理解圖像內(nèi)容,所以為了更好地理解圖像內(nèi)容的深層語義,文字信息是一個重要線索。
[0004]而現(xiàn)在的圖片中不僅會包含文本圖像,還會包含有條形碼,所謂條形碼(特別是二維條形碼)就是指存在由一條直線排列且彼此交錯的黑白模塊組成的軌道線。軌道線的作用是通過獲得各模塊中心的圖像坐標對整個圖像進行校正。
[0005]但是現(xiàn)有技術中還不存在即可以通過條碼可信度信息又可以通過文字可信度信息交叉驗證圖像旋轉方向,避免旋轉方法出現(xiàn)誤判斷,并輸出正確方向的圖像的方法。
【發(fā)明內(nèi)容】
[0006]鑒于以上所述現(xiàn)有技術的缺點,本發(fā)明的目的在于提供一種圖像方向校正方法及系統(tǒng),用于解決現(xiàn)有技術中當圖像方向不正確時,無法快速準確校正圖像方向,以及在校正圖像方向的過程中會發(fā)生誤判斷旋轉方向的問題。
[0007]為實現(xiàn)上述目的及其他相關目的,本發(fā)明一方面提供一種圖像方向校正方法,包括:預處理讀取到的原始圖像數(shù)據(jù);判斷預處理后的圖像中是否檢測到條形碼,若是,則以條形碼的方向角度為中心角度,在一旋轉角度范圍內(nèi)每隔一預設的旋轉角度旋轉一次圖像,檢測旋轉后圖像中是否存在文字,若是,則識別文字,并計算每一次旋轉旋轉角度后對應的文字置信度,并判斷是否存在大于一預設閾值的文字置信度,若不存在,則圖像方向無需校正,若存在,則選擇最高置信度對應的圖像旋轉角度,根據(jù)其校正圖像方向;若否,則選擇條形碼的方向角度,根據(jù)條形碼方向角度校正圖像方向;若否,則全方位范圍內(nèi)每隔另一預設旋轉角度旋轉一次圖像,檢測是否存在文字,若是,則識別文字,并計算每一次旋轉另一旋轉角度后對應的文字置信度,判斷是否存在大于一預設閾值的文字置信度,若不存在,則圖像方向無需校正,若存在,則選擇最高置信度對應的圖像旋轉角度,根據(jù)其校正圖像方向;若否,則圖像方向無需校正。
[0008]優(yōu)選地,判斷預處理后的圖像中是否檢測到條形碼,判斷預處理后的圖像中是否檢測到條形碼,若否,則將[0°,360° ]設置成若干子區(qū)間,在每個子區(qū)間中選擇又一旋轉角度,每隔一個又一旋轉角度旋轉預處理圖像,并在旋轉后的圖像中檢測是否存在文字,若是,則識別文字,并計算每一次旋轉又一旋轉角度后對應的文字置信度,并判斷是否存在大于一預設閾值的文字置信度,若不存在,則圖像方向無需校正,若存在,則選擇最高置信度對應的圖像旋轉角度,根據(jù)其校正圖像方向;若否,則圖像方向無需校正。
[0009]優(yōu)選地,所述圖像方向校正方法還包括判斷是否預處理后的圖像中僅存在一個條形碼,若是,則以條形碼的方向角度為中心角度,在一旋轉角度范圍內(nèi)每隔一預設的旋轉角度旋轉一次圖像,檢測旋轉后圖像中是否存在文字,若是,則識別文字,并計算每一次旋轉旋轉角度后對應的文字置信度,并判斷是否存在大于一預設閾值的文字置信度,若不存在,則圖像方向無需校正,若存在,則選擇最高置信度對應的圖像旋轉角度,根據(jù)其校正圖像方向;若否,則選擇條形碼的方向角度,根據(jù)條形碼方向角度校正圖像方向;若否,則分別以每個條形碼的方向角度為中心角度,分別在每個條形碼對應的一旋轉角度范圍內(nèi)每隔一預設的旋轉角度旋轉一次圖像,檢測旋轉后圖像中是否存在文字,若是,則識別文字,并計算每一次旋轉旋轉角度后對應的文字置信度,并判斷是否存在大于一預設閾值的文字置信度,若不存在,則圖像方向無需校正,若存在,則選擇最高置信度對應的圖像旋轉角度,根據(jù)其校正圖像方向;若否,則選擇任一條形碼的方向角度,根據(jù)條形碼方向角度校正圖像方向。
[0010]優(yōu)選地,所述旋轉角度范圍為[中心角度_i,中心角度+i],其中,所述i大于O度,小于等于10度;所述旋轉角度大于O度,小于10度。
[0011]優(yōu)選地,判斷預處理后的圖像中是否檢測到條形碼的步驟包括:掃描預處理后圖像中的任一像素行;對所述像素行做像素統(tǒng)計,統(tǒng)計所述像素行中連續(xù)的黑色和白色像素,計算像素行的比例序列;將計算到的所述比例序列與預先存儲的各類條形碼的定位符進行比對,若比例相同,則表示檢測到相應條形碼;若比例不相同,則表示未檢測到條形碼,繼續(xù)執(zhí)行下一步;旋轉所述圖像,返回掃描步驟繼續(xù)檢測。
[0012]本發(fā)明另一方面還提供一種圖像方向校正系統(tǒng),包括:條形碼檢測模塊用于檢測預處理后的圖像中是否存在條形碼;條形碼方向角度確定模塊,與所述條形碼檢測模塊連接,用于獲取所述條形碼檢測模塊檢測到的條形碼的方向角度,獲取條形碼的方向角度后,以方向角度為中心角度,設定與條形碼對應的旋轉角度范圍;所述條形碼方向角度確定模塊預存一旋轉角度;旋轉模塊,與所述條形碼方向角度確定模塊連接,用于當檢測到存在條形碼時在旋轉角度范圍內(nèi)每隔一個預設旋轉角度旋轉一次圖像;所述旋轉模塊還用于當未檢測到條形碼時,在全方法360度范圍內(nèi)每隔另一預設旋轉角度旋轉一次圖像。文字檢測模塊,與所述旋轉模塊連接,用于檢測每一次旋轉旋轉角度后的圖像中是否存在文字;文字識別模塊,與所述文字檢測模塊連接,用于當所述文字檢測模塊檢測到每一次旋轉旋轉角度后的圖像中存在文字時識別每一次旋轉旋轉角度度后的圖像中所存在的文字;運算模塊,與所述文字識別模塊連接,用于計算和獲取與每一次旋轉旋轉角度后所對應的文字置信度;比較模塊,與所述運算模塊連接,用于判斷每一次旋轉旋轉角度后所對應的文字置信度是否存在大于一預設閾值的文字置信度,若否,則表示每一次旋轉旋轉角度后所對應的文字置信度都不高,圖像方向無需校正;若是,選擇文字置信度最高對應的圖像旋轉角度,根據(jù)其校正圖像方向。
[0013]優(yōu)選地,所述校正系統(tǒng)還包括圖像校正模塊,所述圖像校正模塊與所述比較模塊連接,用于根據(jù)所述圖像校正角度校正圖像方向。
[0014]優(yōu)選地,所述旋轉模塊還用于預先存儲另一旋轉角度和又一旋轉角度,用于當所述條形碼檢測模塊未在預處理后的圖像中檢測到條形碼時,在全方位360度范圍內(nèi),每隔一個另一旋轉角度,對預處理后的圖像進行旋轉,其中,另一旋轉角度大于10度,小于30度;或者將[0°,360° ]設置成若干子區(qū)間,在每個子區(qū)間中采用又一個旋轉角度,每隔一個又一旋轉角度,對預處理后的圖像進行旋轉。
[0015]優(yōu)選地,所述校正系統(tǒng)還包括用于讀取原始圖像數(shù)據(jù)的圖像讀取模塊,和預處理所述圖像數(shù)據(jù)的預處理圖像模塊。
[0016]優(yōu)選地,所述條形碼探測模塊包括:掃描單元,用于掃描預處理后圖像中的任一像素行;運算單元,與所述掃描單元連接,用于統(tǒng)計所述像素行,統(tǒng)計所述像素行中連續(xù)的黑色和白色像素,計算像素行的比例序列;比較單元,與所述運算單元連接,用于將計算到的所述比例序列與預先存儲其中的各類條形碼的定位符進行比對,若比例相同,則表示檢測到相應條形碼;若比例不相同,則表示未檢測到條形碼;旋轉單元,與所述比較單元連接。用于當所述掃描單元未檢測到條形碼,則旋轉所述圖像,重新調(diào)用所述掃描單元繼續(xù)掃描圖像中的任一像素行。
[0017]如上所述,本發(fā)明所述圖像方向校正方法及系統(tǒng),具有以下有益效果:
[0018]1、本發(fā)明所述圖像方向校正方法及系統(tǒng)利用條形碼方向確定圖像旋轉方向范圍,在該范圍內(nèi)通過對文字的檢測和識別確定圖像校正角度,即可以減少圖像旋轉誤判可能性,同時又可以快速準確判斷校正圖像方向,
[0019]2、本發(fā)明所述圖像方向校正方法及系統(tǒng)給用戶在日常生活、商務工作、研究工作等中瀏覽及其他后期圖像處理操作提供了方便。
【專利附圖】
【附圖說明】
[0020]圖1顯示為本發(fā)明的圖像方向校正方法流程示意圖。
[0021]圖2顯示為本發(fā)明的圖像方向校正方法中步驟2的具體流程示意圖。
[0022]圖3顯示為本發(fā)明的圖像方向校正方法中步驟3的具體流程示意圖。
[0023]圖4顯示為本發(fā)明的圖像方向校正系統(tǒng)結構示意圖。
[0024]圖5顯示為本發(fā)明的圖像方向校正系統(tǒng)中圖像預處理模塊的結構示意圖。
[0025]圖6顯示為本發(fā)明的圖像方向校正系統(tǒng)中條形碼檢測模塊的結構示意圖。
[0026]元件標號說明
[0027]I圖像方向校正系統(tǒng)[0028]10圖像讀取模塊
[0029]20圖像預處理模塊
[0030]30條形碼檢測模塊
[0031]40條形碼方向角度確定模塊
[0032]50旋轉模塊
[0033]60文字檢測模塊
[0034]70文字識別模塊
[0035]80運算模塊
[0036]90比較模塊
[0037]100校正模塊
[0038]201圖像灰度化單元
[0039]202圖像去噪單元
[0040]203圖像二值化單元
[0041]301掃描單元`
[0042]302運算單元
[0043]303比較單元
[0044]304旋轉單元
[0045]SI ~S23 步驟
【具體實施方式】
[0046]以下通過特定的具體實例說明本發(fā)明的實施方式,本領域技術人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的【具體實施方式】加以實施或應用,本說明書中的各項細節(jié)也可以基于不同觀點與應用,在沒有背離本發(fā)明的精神下進行各種修飾或改變。需說明的是,在不沖突的情況下,以下實施例及實施例中的特征可以相互組合。
[0047]需要說明的是,以下實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構想,遂圖式中僅顯示與本發(fā)明中有關的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪制,其實際實施時各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復雜。
[0048]本發(fā)明首先檢測圖像中存在的條碼方向,并按照條碼可能的方向范圍檢測和識別文字,結合文字和條碼的方向的角度及置信度,對圖像的方向進行校正,另外本發(fā)明還可以對存在頭像的圖像,通過檢測頭像的方法,利用頭像方法信息校正圖像。在本實施例中若無說明,旋轉方向可理解為順時針方向,但本發(fā)明的范圍不限于此。
[0049]實施例一
[0050]在保存圖像數(shù)據(jù)或者顯示圖像數(shù)據(jù)給用戶瀏覽之前,或者在打開已經(jīng)保存的圖像文件,讀取圖像數(shù)據(jù)之后,在將讀取的圖像數(shù)據(jù)顯示給用戶瀏覽之前,先對圖像數(shù)據(jù)進行自動的旋轉角度檢測和自動的旋轉校正,從而保證用戶瀏覽圖像時看到的圖像是經(jīng)過旋轉校正的,減少用戶不得不用圖像瀏覽工具進行人工的旋轉校正的麻煩。
[0051]本實施例提供一種圖像方向校正方法,請參閱圖1,顯示為圖像方向校正方法的流程,所述圖像方向校正方法包括:
[0052]SI,讀取原始圖像數(shù)據(jù)。讀取的原始圖像數(shù)據(jù)可為:用數(shù)碼相機拍攝得到的圖像數(shù)據(jù);或者用掃描儀掃描得到的圖像數(shù)據(jù);或者打開一個預先存在包含有圖像數(shù)據(jù)的文件,讀取該文件中的數(shù)據(jù)并按照標準算法解壓縮后得到的圖像數(shù)據(jù)。
[0053]S2,預處理讀取到的原始圖像數(shù)據(jù)。請參閱圖2,顯示為預處理流程,預處理包括:
[0054]S201,灰度化所述原始圖像數(shù)據(jù);由于大多數(shù)讀取到的原始圖像都是彩色圖像,而彩色圖像存儲占用比灰度圖像更多空間,處理起來也比灰度圖像要長得多。同時圖像中存在的條形碼打印又是按照黑白方式打印的,所以在識別條形碼的過程中,實際拍攝到的條形碼圖像中的彩色信息分量對于條形碼的識別沒有作用,因而需要把彩色圖像轉換成灰度圖像,以便減少后續(xù)操作的運算時間。彩色圖像中的每個像素的顏色是由R、G、B三個分量決定的,而灰度圖像是R、G、B三個分量相同的一種特殊的彩色圖像,其中一個像素點的變化范圍為O?255。
[0055]S202,對所述圖像數(shù)據(jù)繼續(xù)去噪處理。由于讀取到的圖像一般都會因周圍環(huán)境的干擾而含有噪聲,因此,要對讀取到的圖像進行去噪處理。在本實施例中,去噪方法采用中值濾波處理。中值濾波是一直噪聲的非線性處理方法,其基本原理是把數(shù)字圖像或數(shù)字序列中的一點的值用該點的一個領域中各點的值的中值代替。
[0056]S203,對所述圖像數(shù)據(jù)繼續(xù)二值化處理。圖像二值化的目的是為了去除背景,盡可能地保留條形碼符號并且減少符號中噪聲雜志,為后續(xù)的條形碼檢測中能夠正確識別位置探測圖形和正確讀取條形碼碼字提供基礎保障。讀取到的圖像數(shù)據(jù)中灰度值接入Llw和Lhight之間的像素構成了過渡區(qū)。過渡區(qū)提取的圖像分割方法的基本思想是通過提取過渡區(qū)的像素,然后使用過渡區(qū)像素的灰度均值作為分割門限對圖像進行二值化。
[0057]S3,判斷預處理后的圖像中是否檢測到條形碼,若檢測到條形碼,則繼續(xù)執(zhí)行步驟S4 ;若未檢測到條形碼,則繼續(xù)執(zhí)行步驟S18。在本實施例中,所述條形碼為一維條形碼或二維條形碼。請參閱圖3,顯示為檢測條形碼的流程,條形碼檢測具體步驟包括:
[0058]S301,掃描預處理后圖像中的任一像素行;由于圖像中每一行都對應一個黑白像素值的像素行。在本實施例中,為了避免環(huán)境噪聲的影響,在步驟S31中會多次掃描圖像中的像素行。
[0059]S302,對所述像素行做像素統(tǒng)計,統(tǒng)計所述像素行中連續(xù)的黑色和白色像素,計算像素行的比例序列;由于每一個條形碼都對應一個定位符,所述定位符為對應于一定比例的黑白條空序列。
[0060]S303,將計算到的所述比例序列與預先存儲的各類條形碼的定位符進行比對,若比例相同,則表示檢測到相應條形碼,執(zhí)行步驟S4 ;若比例不相同,則表示未檢測到條形碼,繼續(xù)執(zhí)行下一步。
[0061]S304,將所述圖像旋轉ω度,返回步驟S301,繼續(xù)掃描圖像中的任一像素行,對該行做像素統(tǒng)計,統(tǒng)計該行連續(xù)的黑色和白色像素,計算所述行的比例序列,
[0062]S4,判斷是否預處理后的圖像中僅存在一個條形碼,若僅存在一個條形碼,則執(zhí)行步驟S5 ;若存在多個條形碼,則執(zhí)行步驟S12。
[0063]S5,存在一個條形碼,利用條形碼掃描線算法,獲取該條形碼的方向角度j。在以該條形碼的方向角度j為中心角度,在[j_i,j+i]旋轉角度范圍內(nèi),設定一旋轉角度Θ,每隔一個旋轉角度Θ旋轉一次圖像。其中,所述條形碼的方向角度j大于O度,小于360度,角度i大于O度,小于等于10度,所述旋轉角度Θ大于O度,小于等于10度,在本實施例中,設置角度i為5度,旋轉角度Θ為I度,通過條形碼掃描線算法,獲取到所述條形碼的方向角度j,在以所述方向角度j為中心角度,在[j_5,j+5]旋轉角度范圍內(nèi)每隔I度旋轉一次預處理后的圖像。
[0064]S6,檢測每一次旋轉Θ度后的圖像中是否存在文字,若存在文字,則執(zhí)行步驟S7 ;若不存在文字,則執(zhí)行步驟SI I。
[0065]S7,識別每一次旋轉Θ度后的圖像中所存在的文字,并計算與每一次旋轉Θ度后所對應的文字數(shù)據(jù)與預先設定正確方向文字模板數(shù)據(jù)的相似程度,獲取每一次旋轉Θ度后所對應的文字置信度;
[0066]S8,判斷每一次旋轉Θ度后所對應的文字置信度是否存在大于一預設閾值的文字置信度,若不存在,則表示每一次旋轉Θ度后所對應的文字置信度都不高,圖像旋轉角度從j_i+ Θ,j-1+2 θ,……至j-1+n Θ都不可信,那么執(zhí)行步驟S9 ;若存在大于預設閾值的文字置信度,則執(zhí)行步驟S10。[0067]S9,設定圖像校正角度為O度,圖像無需進行旋轉,圖像方向無需校正。
[0068]S10,將大于預設閾值的,不同圖像旋轉角度所對應的文字置信度進行比較。選擇文字置信度最高所對應的圖像旋轉角度,將其設定為圖像校正角度,根據(jù)所述圖像校正角度,校正圖像方向,輸出校正好的圖像。在本實施例中,例如,若i等于5度,Θ等于I度,如果,當圖像在旋轉角度范圍內(nèi),旋轉10次后,及旋轉10 Θ,即10度后,所對應的文字置信度最高,那么文字置信度最高所對應的圖像旋轉交底為j_5+10=j+5度,所以圖像校正角度為j+5度。
[0069]S11,選擇所述條形碼的方向角度為圖像校正角度,根據(jù)圖像校正角度校正圖像方向,輸出校正后的圖像,結束進程。
[0070]S12,存在多個條形碼,利用所述條形碼掃描線算法,獲取多個條形碼的方向角度α、β、Y等等,在分別以每個條形碼的方向角度α、β、Υ等等為中心角度,在[a-1,a+i], [β-1, β+?]> [y-1, Y+i]等等旋轉角度范圍內(nèi),設定另一旋轉角度Θ,每隔一個旋轉角度Θ旋轉一次圖像。其中,多個條形碼的方向角度α、β、Y等等大于O度,小于360度,角度i大于O度,小于等于10度,所述旋轉角度Θ大于O度,小于等于10度,在本實施例中,設置角度i為5度,旋轉角度Θ.為I度,通過條形碼掃描線算法,獲取多個條形碼的方向角度a、β、Y等等,在以每個條形碼方向角度a、β、Υ等等為中心角度,在[a-1,a +i], [ β -1, β +i] > [ Y -1, Y +i]等等旋轉角度范圍內(nèi)每隔I度旋轉一次預處理后的圖像。
[0071]S13,檢測每一次旋轉Θ度后的圖像中是否存在文字,若存在文字,則執(zhí)行步驟S14 ;若不存在文字,則執(zhí)行步驟S17。
[0072]S14,識別每一次旋轉Θ度后的圖像中所存在的文字,并計算與每一次旋轉Θ度后所對應的的文字數(shù)據(jù)與預先設定正確方向文字模板數(shù)據(jù)的相似程度,獲取每一次旋轉Θ度后所對應的的文字置信度;
[0073]S15,判斷每一次旋轉Θ度后所對應的文字置信度是否存在大于一預設閾值的文字置信度,若不存在,則表示每一次旋轉Θ度后所對應的文字置信度都不高,圖像旋轉角度從 α-?+θ/β-?+θ/gamma-?+θ……,α-?+2θ/β-?+2θ/gamma-?+2θ……,……至a -1+n θ / β -1+n θ / y -1+n θ……都不可信,那么執(zhí)行步驟S9 ;若存在大于預設閾值的文字置信度,則執(zhí)行步驟S16。
[0074]S16,將大于預設閾值的,不同圖像旋轉角度所對應的文字置信度進行比較。選擇文字置信度最高的圖像旋轉角度,將其設定為圖像校正角度,根據(jù)圖像校正角度校正圖像方向,輸出校正好的圖像。在本實施例中,通過利用條碼方向和對應旋轉范圍內(nèi)文字識別的置信度信息,做交叉驗證圖像旋轉方法,避免了圖像旋轉方法的誤判斷。在本實施例中,例如,如果一條形碼的方向交底α為中心角度,在[α-1,a+i]旋轉角度范圍內(nèi),若i等于5度,Θ等于I度,如果,當圖像在旋轉角度范圍內(nèi),旋轉12次后,及旋轉12 Θ,即12度后,所對應的文字置信度最高,那么文字置信度最高所對應的圖像旋轉交底為a -5+12= a+7度,所以圖像校正角度為a+7度。
[0075]S17,選擇多個條形碼中任一條形碼的方向角度為圖像校正角度,根據(jù)圖像校正角度校正圖像方向,輸出校正后的圖像,結束進程。
[0076]S18四像中未檢測到條形碼,則在全方位360度范圍內(nèi),設定一旋轉角度Φ,每隔一個旋轉角度φ對預處理后的圖像進行旋轉,其中旋轉角度cP大于10度,小于30度;本步驟還可以將[0°,360° ]設置成η個子區(qū)間,在每個子區(qū)間中選擇另一個旋轉角度φ’,旋轉預處理圖像即可。
[0077]S19,在旋轉后的圖像中檢測是否存在文字,若檢測到存在文字,則執(zhí)行步驟S20;若未檢測到文字,則不旋轉圖像,結束進程;[0078]S20,識別每一次旋轉φ度或φ’度后的圖像中所存在的文字,并計算與每一次旋轉φ度或φ’度后所對應的的文字數(shù)據(jù)與預先設定正確方向文字模板數(shù)據(jù)的相似程度,獲取每一次旋轉φ度或φ'度后所對應的的文字置信度;
[0079]S21,判斷每一次旋轉φ或φ’度后所對應的文字置信度是否存在大于一預設閾值文字置信度,若不存在,則表示每一次旋轉φ度或Φ'度后所對應的文字置信度都不高,圖像旋轉角度從φ/φ’,2φ/2φ’……ηφ/mp’都不可信,那么執(zhí)行步驟S22 ;若存在大于預設閾值的文字置信度,則執(zhí)行步驟S23。
[0080]S22,設定圖像校正角度為O度,圖像無需進行旋轉,圖像方向無需校正。
[0081]S23,將大于預設閾值的,不同圖像旋轉角度所對應的文字置信度進行比較,選擇文字置信度最高的圖像旋轉角度,將其設定為圖像校正角度,根據(jù)圖像校正角度校正圖像方向,輸出校正好的圖像。
[0082]若本實施例中,所述圖像若包括人臉,所述步驟S7檢測每一次旋轉旋轉角度后圖像中是否存在人臉,計算人臉可靠性指標,根據(jù)計算得到的人臉可靠性指標校正圖像方向。
[0083]實施例二
[0084]本實施例提供一種圖像方向校正系統(tǒng)I,請參閱圖4,顯示為圖像方向校正系統(tǒng)的結構,所述校正系統(tǒng)包括:圖像讀取模塊10、圖像預處理模塊20、條形碼檢測模塊30、條形碼方向角度確定模塊40、旋轉模塊50、文字檢測模塊60、文字識別模塊70、運算模塊80、t匕較模塊90、及校正模塊100。[0085]所述圖像讀取模塊10,用于讀取原始圖像數(shù)據(jù)。
[0086]所述圖像預處理模塊20,用于對原始圖像數(shù)據(jù)進行預處理。請參閱圖5,顯示為所述圖像預處理模塊20的結構,所述圖像預處理模塊20包括:圖像灰度化單元201、圖像去噪單元202、圖像二值化單元203。其中,
[0087]所述圖像灰度化單元201用于灰度化原始圖像數(shù)據(jù),由于大多數(shù)讀取到的原始圖像都是彩色圖像,而彩色圖像存儲占用比灰度圖像更多空間,處理起來也比灰度圖像要長得多。同時圖像中存在的條形碼打印又是按照黑白方式打印的,所以在識別條形碼的過程中,實際拍攝到的條形碼圖像中的彩色信息分量對于條形碼的識別沒有作用,因而需要把彩色圖像轉換成灰度圖像,以便減少后續(xù)操作的運算時間。彩色圖像中的每個像素的顏色是由R、G、B三個分量決定的,而灰度圖像是R、G、B三個分量相同的一種特殊的彩色圖像,其中一個像素點的變化范圍為O?255。所述圖像去噪單元202用于為所述圖像數(shù)據(jù)去噪處理。由于讀取到的圖像一般都會因周圍環(huán)境的干擾而含有噪聲,因此,要對讀取到的圖像進行去噪處理。在本實施例中,去噪方法采用中值濾波處理。中值濾波是一直噪聲的非線性處理方法,其基本原理是把數(shù)字圖像或數(shù)字序列中的一點的值用該點的一個領域中各點的值的中值代替。所述圖像二值化單元203用于對所述圖像數(shù)據(jù)繼續(xù)二值化處理。圖像二值化的目的是為了去除背景,盡可能地保留條形碼符號并且減少符號中噪聲雜志,為后續(xù)的條形碼檢測中能夠正確識別位置探測圖形和正確讀取條形碼碼字提供基礎保障。讀取到的圖像數(shù)據(jù)中灰度值接入Llov和Lhight之間的像素構成了過渡區(qū)。過渡區(qū)提取的圖像分割方法的基本思想是通過提取過渡區(qū)的像素,然后使用過渡區(qū)像素的灰度均值作為分割門限對圖像進行二值化。
[0088]所述條形碼檢測模塊30與所述圖像預處理單元20連接,用于檢測預處理后的圖像中是否存在至少一個條形碼。請參閱圖6,顯示為條形碼檢測模塊的結構,所述條形碼檢測模塊30包括掃描單元301、運算單元302、比較單元303、及旋轉單元304。在本實施例中,所述條形碼為一維條形碼或二維條形碼。
[0089]所述掃描單元301用于掃描預處理后圖像中的任一像素行;由于圖像中每一行都對應一個黑白像素值的像素行。在本實施例中,為了避免環(huán)境噪聲的影響,多次調(diào)用所述掃描單元掃描圖像中的像素行。
[0090]與所述掃描單元301連接的所述運算單元302用于統(tǒng)計所述像素行,統(tǒng)計所述像素行中連續(xù)的黑色和白色像素,計算像素行的比例序列。由于每一個條形碼都對應一個定位符,所述定位符為對應于一定比例的黑白條空序列。
[0091]與所述運算單元302連接的所述比較單元303將計算到的所述比例序列與預先存儲其中的各類條形碼的定位符進行比對,若比例相同,則表示檢測到相應條形碼;若比例不相同,則表示未檢測到條形碼。
[0092]與所述比較單元303連接的旋轉單元304用于當所述掃描單元301未檢測到條形碼,則將所述圖像按照預定旋轉角度ω旋轉,重新調(diào)用所述掃描單元301繼續(xù)掃描圖像中的任一像素行,對該行做像素統(tǒng)計,統(tǒng)計該行連續(xù)的黑色和白色像素,計算所述行的比例序列。
[0093]所述條形碼檢測模塊30還用于檢測預處理后的圖像中條形碼的個數(shù),所述預處理后的圖像中條形碼的個數(shù)至少包括一個條形碼。[0094]與所述條形碼檢測模塊30連接的所述條形碼方向角度確定模塊40用于獲取所述條形碼檢測模塊30檢測到的所有條形碼的方向角度j、α、β、Y等等,在所述條形碼方向角度確定模塊40獲取所有條形碼的方向角度后以方向角度為中心交底,設定與每個條形
碼--對應的旋轉角度范圍[j-1,j+i]、[ ct-1,a+i]、[p-1,β +i] > [ y -1, Y +i]等等,
在該模塊中預先存儲有一旋轉角度Θ。
[0095]與所述條形碼方向角度確定單元40連接的旋轉模塊50用于分別以各個條形碼的方向角度 j、ct、β、y 等等為中心角度,在[j-1, j+i]、[ a -1, a +i]、[ β -1, β +i]、[ y _i,y+i]等等旋轉角度范圍內(nèi),每隔一個旋轉角度θ旋轉一次圖像。其中,多個條形碼的方向角度j、α、β、Y等等大于O度,小于360度,角度i大于O度,小于等于10度,所述旋轉角度Θ大于O度,小于等于10度,在本實施例中,設置角度i為5度,旋轉角度Θ為I度,通過條形碼掃描線算法,獲取到所述條形碼的方向角度j,在以所述方向角度j、α、β、
Y等等為中心角度,在[j_5,j+5]、[a-5,a+5]、[β_5,β+5]、[y-5, Y+5]等等旋轉范圍內(nèi)每隔ι度旋轉一次預處理后的圖像。所述旋轉模塊50中預先存儲有另一旋轉角度φ和又一旋轉角度φ’,用于當所述條形碼檢測模塊30未在預處理后的圖像中檢測到條形碼,則在全方位360度范圍內(nèi),每隔一個旋轉角度Φ,對預處理后的圖像進行旋轉。其中旋轉角度Φ大于10度,小于30度;或者所述旋轉模塊50還可以將[0°,360° ]設置成η個子區(qū)間,在每個子區(qū)間中采用另一個旋轉角度φ’,對預處理后的圖像進行旋轉
[0096]與所述旋轉模塊50連接的所述文字檢測模塊60用于檢測每一次旋轉Θ度后的圖像中是否存在文字。所述文字檢測模塊60還可以為人臉檢測模塊60’用于檢測每一次旋轉Θ度后的圖像中是否存在人臉。運算模塊80’用于計算人臉可靠性指標,校正模塊100’用于根據(jù)計算得到的人臉可靠性指標校正圖像方向。所述文字檢測模塊60還用于當所述條形碼檢測模塊30未在預處理后的圖像中檢測到條形碼時,每隔一個旋轉角度φ/φ’旋
轉圖像后檢測每一次旋轉φ#度后的圖像中是否存在文字。
[0097]與所述文字檢測模塊60連接的所述文字識別模塊70用于當所述文字檢測模塊60檢測到每一次旋轉Θ度后的圖像中存在文字時識別每一次旋轉Θ度后的圖像中所存在的文字。所述文字識別模塊70還用于當所述文字檢測模塊60檢測到每一次旋轉φ/φ度后的
圖像中存在文字時識別每一次旋轉φ/φ'度后的圖像中所存在的文字。
[0098]與所述文字識別模塊70連接的運算模塊80用于計算與每一次旋轉Θ度后所對應的文字數(shù)據(jù)與預先設定正確方向文字模板數(shù)據(jù)的相似程度,獲取每一次旋轉Θ度后所對應的文字置信度;所述運算模塊80還用于計算每一次旋轉φ/φ度后所對應的文字數(shù)據(jù)
與預先設定正確方向文字模板數(shù)據(jù)的相似程度,獲取每一次旋轉φ/φ’度后所對應的文字置信度。
[0099]與所述運算模塊80連接的所述比較模塊90用于判斷每一次旋轉Θ度后所對應的文字置信度是否存在大于一預設閾值的文字置信度,若不存在,則表示每一次旋轉Θ度
后所對應的文字置?目度都不聞, 圖像旋轉角度從j_i+Q / α -?+ θ / β -?+ θ / y -?+ θ......,
j-1+2 θ / α -?+2 θ / β -?-+2 θ / y -?+2 θ......,......至 j-1+n θ / a -1+n θ / β -1+n θ /y-1+ηθ……都不可信,預處理后的圖像無需進行旋轉。若存在大于預設閾值的文字置信度,則表示繼續(xù)將大于預設閾值的,不同圖像旋轉角度所對應的文字置信度進行比較,選擇文字置信度最高的圖像旋轉角度,將其設定為圖像校正角度,在本實施例中,通過利用條碼方向和對應旋轉范圍內(nèi)文字識別的置信度信息,做交叉驗證圖像旋轉方法,避免了圖像旋轉方法的誤判斷。所述比較模塊90還用于判斷每一次旋轉φ ,度或φ’度后所對應的文字置信度是否存在大于一預設閾值的文字置信度,若不存在,則表示每一次旋轉φ度或φ’度后所對應的文字置信度都不高,圖像旋轉角度從φ/φ 2φ/2φ’......ηφ/ηφ’都不可信,圖像無
需校正;若存在大于預設閾值的文字置信度,將大于預設閾值的,不同圖像旋轉角度所對應的文字置信度進行比較,選擇文字置信度最高的圖像旋轉角度,將其設定為圖像校正角度。
[0100]與所述比較模塊90連接的所述校正模塊100用于獲取圖像校正角度,根據(jù)圖像校正角度校正圖像方向,輸出校正好的圖像。
[0101]針對包含文字和/或條形碼的圖像,本發(fā)明所述的圖像方向校正方法及系統(tǒng)自動依據(jù)文字和/或條形碼方向的角度和置信度信息檢測圖像正方向,首先利用條形碼方向確定圖像旋轉方向范圍,在該范圍內(nèi)通過對文字的檢測和識別確定圖像校正角度,這樣即可以減少圖像旋轉誤判可能性,同時又可以快速準確判斷校正圖像方向,給用戶在日常生活、商務工作、研究工作等中瀏覽及其他后期圖像處理操作提供了方便。本發(fā)明還便于安裝在計算機、手機、平板電腦等智能設備中。
[0102]所以,本發(fā)明有效克服了現(xiàn)有技術中的種種缺點而具高度產(chǎn)業(yè)利用價值。
[0103]上述實施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術的人士皆可在不違背本發(fā)明的精神及范疇下,對上述實施例進行修飾或改變。因此,舉凡所屬【技術領域】中具有通常知識者在未脫離本發(fā)明所揭示的精神與技術思想下所完成的一切等效修飾或改變,仍應由本發(fā)明的權利要求所涵蓋。
【權利要求】
1.一種圖像方向校正方法,其特征在于,包括: 預處理讀取到的原始圖像數(shù)據(jù); 判斷預處理后的圖像中是否檢測到條形碼, 若是,則以條形碼的方向角度為中心角度,在一旋轉角度范圍內(nèi)每隔一預設的旋轉角度旋轉一次圖像,檢測旋轉后圖像中是否存在文字,若是,則識別文字,并計算每一次旋轉旋轉角度后對應的文字置信度,并判斷是否存在大于一預設閾值的文字置信度,若不存在,則圖像方向無需校正,若存在,則選擇最高置信度對應的圖像旋轉角度,根據(jù)其校正圖像方向;若否,則選擇條形碼的方向角度,根據(jù)條形碼方向角度校正圖像方向; 若否,則全方 位范圍內(nèi)每隔另一預設旋轉角度旋轉一次圖像,檢測是否存在文字,若是,則識別文字,并計算每一次旋轉另一旋轉角度后對應的文字置信度,判斷是否存在大于一預設閾值的文字置信度,若不存在,則圖像方向無需校正,若存在,則選擇最高置信度對應的圖像旋轉角度,根據(jù)其校正圖像方向;若否,則圖像方向無需校正。
2.根據(jù)權利要求1所述的圖像方向校正方法,其特征在于:判斷預處理后的圖像中是否檢測到條形碼,若否,則將[0°,360° ]設置成若干子區(qū)間,在每個子區(qū)間中選擇又一旋轉角度,每隔一個又一旋轉角度旋轉預處理圖像,并在旋轉后的圖像中檢測是否存在文字,若是,則識別文字,并計算每一次旋轉又一旋轉角度后對應的文字置信度,并判斷是否存在大于一預設閾值的文字置信度,若不存在,則圖像方向無需校正,若存在,則選擇最高置信度對應的圖像旋轉角度,根據(jù)其校正圖像方向;若否,則圖像方向無需校正。
3.根據(jù)權利要求1所述的圖像方向校正方法,其特征在于:所述圖像方向校正方法還包括判斷是否預處理后的圖像中僅存在一個條形碼, 若是,則以條形碼的方向角度為中心角度,在一旋轉角度范圍內(nèi)每隔一預設的旋轉角度旋轉一次圖像,檢測旋轉后圖像中是否存在文字,若是,則識別文字,并計算每一次旋轉旋轉角度后對應的文字置信度,并判斷是否存在大于一預設閾值的文字置信度,若不存在,則圖像方向無需校正,若存在,則選擇最高置信度對應的圖像旋轉角度,根據(jù)其校正圖像方向;若否,則選擇條形碼的方向角度,根據(jù)條形碼方向角度校正圖像方向; 若否,則分別以每個條形碼的方向角度為中心角度,分別在每個條形碼對應的一旋轉角度范圍內(nèi)每隔一預設的旋轉角度旋轉一次圖像,檢測旋轉后圖像中是否存在文字,若是,則識別文字,并計算每一次旋轉旋轉角度后對應的文字置信度,并判斷是否存在大于一預設閾值的文字置信度,若不存在,則圖像方向無需校正,若存在,則選擇最高置信度對應的圖像旋轉角度,根據(jù)其校正圖像方向;若否,則選擇任一條形碼的方向角度,根據(jù)條形碼方向角度校正圖像方向。
4.根據(jù)權利要求1所述的圖像方向校正方法,其特征在于:所述旋轉角度范圍為[中心角度_i,中心角度+i],其中,所述i大于O度,小于等于10度;所述旋轉角度大于O度,小于10度。
5.根據(jù)權利要求1所述的圖像方向校正方法,其特征在于:判斷預處理后的圖像中是否檢測到條形碼的步驟包括: 掃描預處理后圖像中的任一像素行; 對所述像素行做像素統(tǒng)計,統(tǒng)計所述像素行中連續(xù)的黑色和白色像素,計算像素行的比例序列;將計算到的所述比例序列與預先存儲的各類條形碼的定位符進行比對,若比例相同,則表示檢測到相應條形碼;若比例不相同,則表示未檢測到條形碼,繼續(xù)執(zhí)行下一步; 旋轉所述圖像,返回掃描步驟繼續(xù)檢測。
6.—種圖像方向校正系統(tǒng),其特征在于,包括: 條形碼檢測模塊用于檢測預處理后的圖像中是否存在條形碼; 條形碼方向角度確定模塊,與所述條形碼檢測模塊連接,用于獲取所述條形碼檢測模塊檢測到的條形碼的方向角度,獲取條形碼的方向角度后,以方向角度為中心角度,設定與條形碼對應的旋轉角度范圍;所述條形碼方向角度確定模塊預存一旋轉角度; 旋轉模塊,與所述條形碼方向角度確定模塊連接,用于當檢測到存在條形碼時在旋轉角度范圍內(nèi)每隔一個預設旋轉角度旋轉一次圖像;所述旋轉模塊還用于當未檢測到條形碼時,在全方法360度范圍內(nèi)每隔另一預設旋轉角度旋轉一次圖像。 文字檢測模塊,與所述旋轉模塊連接,用于檢測每一次旋轉旋轉角度后的圖像中是否存在文字; 文字識別模塊,與所述文字檢測模塊連接,用于當所述文字檢測模塊檢測到每一次旋轉旋轉角度后的圖像中存在文字時識別每一次旋轉旋轉角度度后的圖像中所存在的文字; 運算模塊,與所述文字識別模塊連接,用于計算和獲取與每一次旋轉旋轉角度后所對應的文字置信度; 比較模塊,與所述運算模塊連接,用于判斷每一次旋轉旋轉角度后所對應的文字置信度是否存在大于一預設閾值的文字置信度,若否,則表示每一次旋轉旋轉角度后所對應的文字置信度都不高,圖像方·向無需校正;若是,選擇文字置信度最高對應的圖像旋轉角度,根據(jù)其校正圖像方向。
7.根據(jù)權利要求6所述的圖像方向校正系統(tǒng),其特征在于:所述校正系統(tǒng)還包括圖像校正模塊,所述圖像校正模塊與所述比較模塊連接,用于根據(jù)所述圖像校正角度校正圖像方向。
8.根據(jù)權利要求6所述的圖像方向校正系統(tǒng),其特征在于:所述旋轉模塊還用于預先存儲另一旋轉角度和又一旋轉角度,用于當所述條形碼檢測模塊未在預處理后的圖像中檢測到條形碼時,在全方位360度范圍內(nèi),每隔一個另一旋轉角度,對預處理后的圖像進行旋轉,其中,另一旋轉角度大于10度,小于30度;或者將[0°,360° ]設置成若干子區(qū)間,在每個子區(qū)間中采用又一個旋轉角度,每隔一個又一旋轉角度,對預處理后的圖像進行旋轉。
9.根據(jù)權利要求6所述的圖像方向校正系統(tǒng),其特征在于:所述校正系統(tǒng)還包括用于讀取原始圖像數(shù)據(jù)的圖像讀取模塊,和預處理所述圖像數(shù)據(jù)的預處理圖像模塊。
10.根據(jù)權利要求6所述的圖像方向校正系統(tǒng),其特征在于:所述條形碼探測模塊包括: 掃描單元,用于掃描預處理后圖像中的任一像素行; 運算單元,與所述掃描單元連接,用于統(tǒng)計所述像素行,統(tǒng)計所述像素行中連續(xù)的黑色和白色像素,計算像素行的比例序列; 比較單元,與所述運算單元連接,用于將計算到的所述比例序列與預先存儲其中的各類條形碼的定位符進行比對,若比例相同,則表示檢測到相應條形碼;若比例不相同,則表示未檢測到條形碼; 旋轉單元,與所述比較單元連接。用于當所述掃描單元未檢測到條形碼,則旋轉所述圖像,重新調(diào)用所述掃描單元 繼續(xù)掃描圖像中的任一像素行。
【文檔編號】G06T3/60GK103714327SQ201310746613
【公開日】2014年4月9日 申請日期:2013年12月30日 優(yōu)先權日:2013年12月30日
【發(fā)明者】郭豐俊, 羅希平, 王曉立 申請人:上海合合信息科技發(fā)展有限公司