本發(fā)明涉及鏡頭檢測技術(shù)領(lǐng)域,特別涉及一種檢測鏡頭污點的方法和裝置。
背景技術(shù):
近年來,智能產(chǎn)品已經(jīng)滲透到生活中的方方面面,而如今智能產(chǎn)品攝像頭應(yīng)該作為了一種標配,那么對于鏡頭制造商及鏡頭中間生產(chǎn)商來講,如何檢測鏡頭是否為一個良品則成為了一個挑戰(zhàn)。
鏡頭檢測是一個復(fù)雜的過程,包括測試鏡頭對色彩的分辨率、鏡頭的畸變率、鏡頭上是否有臟污等等很多測試流程,這里我們只針對于檢測鏡頭是否有臟污,也就是檢測鏡頭污點,提出了一種新的檢測方法,可以改善或解決之前的一些缺點。
對于我們?nèi)搜蹃矸直嫖埸c那是很簡單不過的事情了,但是對于計算機來說那不是件容易的事,因為計算機的世界里只有數(shù)字,計算機只能通過分析這些數(shù)字,從這些數(shù)字中提取出有效的信息,來做出一定的判斷?,F(xiàn)有技術(shù)中污點測試算法是這樣的:首先將鏡頭拍攝的圖片中的像素點分為若干個小塊(Block),然后對當前Block與它后面第二個Block像素點的亮度值進行作差,然后設(shè)置一個閾值,根據(jù)這個差值和閾值的關(guān)系判定此處是否存在污點。這種算法存在如下一些缺點:
1、該算法對于測試亮度值基本均勻且是方形區(qū)域的圖片是比較有效的,但有時根據(jù)客戶的需求,鏡頭拍攝出的圖片可能是一個由中心向邊緣呈輻射狀逐漸變暗的圓形,四個角是暗角,此時利用該算法進行測試就會存在不準確的問題,例如,由于中心亮度比較高的區(qū)域亮度值變化相對比較小,而邊緣亮度比較低的區(qū)域亮度值變化相對比較大,這種算法可能會檢測不出中心區(qū)域輕微的污點,或者將邊緣區(qū)域不是污點的地方誤判為污點;
2、該算法中需要進行大量的運算,需要互相作差,效率不算很高,而且Block大小也需要根據(jù)實際圖像或污點類型來確定;
3、該算法對拍攝圖片的亮度有較高的要求,當亮度有少量的變化時,預(yù)設(shè)的閾值就可能不再準確,相應(yīng)地可能引起復(fù)測或誤判的問題,制約生產(chǎn)線的生產(chǎn)效率。
技術(shù)實現(xiàn)要素:
鑒于上述問題,本發(fā)明提供了一種檢測鏡頭污點的方法和裝置,以解決現(xiàn)有檢測鏡頭污點的方法準確度和效率較低的問題。
為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
一方面,本發(fā)明提供一種檢測鏡頭污點的方法,所述方法包括:
利用所述鏡頭拍攝一張圖片或者從所述鏡頭拍攝的視頻中選取一張圖片;
選取所述圖片的感興趣區(qū)域,在所述感興趣區(qū)域中以第一步長逐行或逐列選取測試像素點,并以第二步長在所述測試像素點周圍選取若干參照像素點,其中,所述第二步長大于所述第一步長的一半,每個所述測試像素點與其周圍的參照像素點組成一個測試單元;
獲取每個測試單元內(nèi)的所述測試像素點及參照像素點的亮度值,并計算每個測試單元內(nèi)的所述測試像素點及參照像素點的平均亮度值和亮度值的方差;
將所述方差與預(yù)先獲取的所述平均亮度值對應(yīng)的方差閾值對比,如果所述方差大于所述方差閾值,則判定所述測試單元中的測試像素點為污點;
輸出所述污點的像素位置,由所述污點的像素位置確定所述鏡頭污點的位置。
另一方面,本發(fā)明還提供一種檢測鏡頭污點的裝置,所述裝置包括:
圖片獲取模塊,用于利用所述鏡頭拍攝一張圖片或者從所述鏡頭拍攝的視頻中選取一張圖片;
測試單元選取模塊,用于在所述圖片的感興趣區(qū)域中以第一步長逐行或逐列選取測試像素點,并以第二步長在所述測試像素點周圍選取若干參照像素點,其中,所述第二步長大于所述第一步長的一半,每個所述測試像素點與其周圍的參照像素點組成一個測試單元;
亮度值方差獲取模塊,用于根據(jù)每個測試單元內(nèi)的所述測試像素點及參照像素點的亮度值,計算每個測試單元內(nèi)的所述測試像素點及參照像素點的平均亮度值和亮度值的方差;
污點判定模塊,用于將所述方差與預(yù)先獲取的所述平均亮度值對應(yīng)的方差閾值對比,如果所述方差大于所述方差閾值,則判定所述測試單元中的測試像素點為污點;
污點位置確定模塊,用于輸出所述污點的像素位置,由所述污點的像素位置確定所述鏡頭污點的位置。
本發(fā)明的有益效果是:本發(fā)明提供的檢測鏡頭污點的方法和裝置,通過計算測試單元的平均亮度值和亮度值的方差,將該方差與平均亮度值對應(yīng)的方差閾值對比,從而判斷污點位置,不僅適合亮度基本均勻的圖片,而且適合由中心向邊緣呈輻射狀逐漸變暗的圖片。
一方面,對于亮度基本均勻的圖片,測試不同區(qū)域時選取的方差閾值是相同的。而平均亮度值不同的圖片,方差閾值是不同的。這樣就對拍攝的圖片亮度有一定的容錯率,隨圖片亮度值不同而選取不同的方差閾值,有利于算法更穩(wěn)定更準確的執(zhí)行,提高測試的準確度,避免復(fù)測,提高生產(chǎn)線的效率。
另一方面,對于由中心向邊緣呈輻射狀逐漸變暗的圖片,中心亮度較高區(qū)域?qū)?yīng)的方差閾值小于邊緣亮度較低區(qū)域?qū)?yīng)的方差閾值,這樣,中心區(qū)域即使有很輕微的污點,而由于污點所在測試單元對應(yīng)的方差閾值較小,因此很容易檢測出該污點。同樣,由于邊緣區(qū)域的方差閾值較大,亮度值方差本身比較大的地方也不會被誤判為污點。這樣大大提高了測試的準確度,避免復(fù)測,提高生產(chǎn)線的效率。
附圖說明
圖1是本發(fā)明實施例一的檢測鏡頭污點的方法的流程圖;
圖2是本發(fā)明實施例一中在感興趣區(qū)域選取測試單元和參照像素點的示意圖;
圖3是本發(fā)明實施例一中獲取參照像素點亮度值的示意圖;
圖4是本發(fā)明實施例一中設(shè)置感興趣區(qū)域之外的像素點的亮度值的示意圖;
圖5是本發(fā)明實施例一中獲取方差閾值的方法流程圖;
圖6是本發(fā)明實施例二中由中心向邊緣呈輻射狀逐漸變暗的圖片的示意圖;
圖7是本發(fā)明實施例三的檢測鏡頭污點的裝置的流程圖。
具體實施方式
本發(fā)明的設(shè)計構(gòu)思是,采用數(shù)學(xué)中求方差的思想來判斷圖片中是否存在污點。由于方差是衡量一組數(shù)據(jù)的離散程度的統(tǒng)計量,即隨機變量和均值之間的偏離程度,因此應(yīng)用在本發(fā)明中就是計算選定的測試單元中多個像素點亮度值的方差,如果該方差大于預(yù)先獲取的方差閾值,說明在該測試單元中像素點的亮度值離散程度較大,各個像素點的亮度與亮度平均值偏離程度較高,因此推測出在該測試單元中有污點存在。經(jīng)多次實驗發(fā)現(xiàn)本發(fā)明的測試效率和準確度都優(yōu)于現(xiàn)有技術(shù)中的測試算法。
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
實施例一
本發(fā)明實施例提供一種檢測鏡頭污點的方法,如圖1所示,該方法包括:
步驟S110:利用鏡頭拍攝一張圖片或者從鏡頭拍攝的視頻中選取一張圖片;
步驟S120:選取圖片的感興趣區(qū)域,在感興趣區(qū)域中以第一步長逐行選取測試像素點,并以第二步長在測試像素點周圍選取若干參照像素點,每個測試像素點與其周圍的參照像素點組成一個測試單元,如圖2中的標號分別a、b和c的測試單元。例如,在標號為c的測試單元中,1為測試像素點,2-5均為參照像素點,參照像素點的個數(shù)可根據(jù)需要靈活選擇,參照像素點越多,測試結(jié)果越準確。
其中,第二步長大于第一步長的一半,使同一行相鄰的兩個測試單元互相重疊,如圖2所示,標號分別為a和b的兩個測試單元互相重疊,避免漏掉圖片中的像素點,確保所有的測試單元可以覆蓋整個感興趣區(qū)域,以保證測試結(jié)果的準確度。但是如果第二步長過小,則會降低測試效率,因此在選取第二步長的具體數(shù)值時,既要保證準確度,也要兼顧效率。
此外,逐行選取測試像素點也會降低測試效率,在具體測試時,例如可每隔一行或每隔兩行選取測試像素點,如果將行與行之間的步長定義為第三步長,則第三步長應(yīng)小于兩倍的第二步長,使同一列相鄰的兩個測試單元互相重疊,避免漏掉圖片中的像素點,確保所有的測試單元可以覆蓋整個感興趣區(qū)域,以保證測試結(jié)果的準確度。同樣地,如果第三步長過小,則會降低測試效率,因此在選取第三步長的具體數(shù)值時,既要保證準確度,也要兼顧效率。
需要說明的是,與上述逐行選取測試像素點的步驟類似,也可逐列選取測試像素點。
步驟S130:獲取每個測試單元內(nèi)的測試像素點及參照像素點的亮度值,并計算每個測試單元內(nèi)的測試像素點及參照像素點的平均亮度值和亮度值的方差;
步驟S140:將方差與預(yù)先獲取的所述平均亮度值對應(yīng)的方差閾值對比,如果方差大于方差閾值,則判定測試單元中的測試像素點為污點;
步驟S150:輸出污點的像素位置,由污點的像素位置確定鏡頭污點的位置。
在本發(fā)明實施例中,由于測試單元代表的區(qū)域是有大小的,當測試中心點在感興趣區(qū)域的邊緣時,需要特別注意保證參照像素點的合法性,因此步驟S130中獲取每個測試單元內(nèi)的參照像素點的亮度值包括:
如果參照像素點在感興趣區(qū)域之內(nèi),如圖3中標號為c的測試單元中的參照像素點,則將參照像素點的亮度值設(shè)置為自身正常的亮度值;
如果參照像素點超出感興趣區(qū)域但未超出圖片區(qū)域,如圖3中標號為d的測試單元左下角的部分參照像素點,則將參照像素點的亮度值用其所在測試單元內(nèi)的測試像素點的亮度值代替,避免感興趣區(qū)域之外的像素點的亮度值影響方差的結(jié)果,最終影響污點的判定;
如果參照像素點超出圖片區(qū)域,如圖3中的測試單元e下半部分參照像素點,則將參照像素點作為無效像素點去掉。
在本發(fā)明實施例中,圖1所示的方法還包括:將感興趣區(qū)域之外的像素點的亮度值設(shè)置為255;
將感興趣區(qū)域之外的像素點的亮度值設(shè)置為255包括:
如圖4所示,若在感興趣區(qū)域中逐行選取測試像素點,則將感興趣區(qū)域每行的最大列和最小列之外的像素點的亮度值設(shè)置為255;
若在感興趣區(qū)域中逐列選取測試像素點,則將感興趣區(qū)域每列的最大行和最小行之外的像素點的亮度值設(shè)置為255。
在本發(fā)明實施例中,感興趣區(qū)域為圖片的部分或者全部,感興趣區(qū)域的形狀為圓形、正方形或多邊形;
如果感興趣區(qū)域為圓形,則將感興趣區(qū)域之外的像素點的亮度值設(shè)置為255具體為:將與圓心距離大于圓形半徑的像素點的亮度值設(shè)置為255。
在本發(fā)明的實施例中,上述方法還包括獲取不同亮度值對應(yīng)的方差閾值的步驟,如圖5所示,該步驟包括:
步驟S210:在與測試環(huán)境相同的拍攝條件下,利用無污點的鏡頭拍攝一張圖片或者從無污點的鏡頭拍攝的視頻中選取一張圖片;
步驟S220:獲取圖片不同亮度區(qū)域內(nèi)的中心像素點及其周圍預(yù)定步長內(nèi)若干像素點的亮度值;
步驟S230:計算中心像素點及其周圍預(yù)定步長內(nèi)若干像素點的平均亮度值和亮度值的方差;
步驟S240:根據(jù)平均亮度值為亮度值的方差加上一經(jīng)驗值,得到不同平均亮度值對應(yīng)的方差閾值,經(jīng)驗值隨平均亮度值的不同而變化。
在本發(fā)明實施例中,如圖2-4所示,圖片亮度基本均勻,則整個圖片的亮度方差是統(tǒng)一的,對應(yīng)的經(jīng)驗值也是統(tǒng)一的,因此該亮度水平下的圖片在測試不同區(qū)域時選取的方差閾值是相同的。但是平均亮度值不同的圖片,方差閾值是不同的。這樣就對拍攝的圖片亮度有一定的容錯率,隨圖片亮度值不同而選取不同的方差閾值,有利于算法更穩(wěn)定更準確的執(zhí)行,提高測試的準確度,避免復(fù)測,提高生產(chǎn)線的效率。
實施例二
在本發(fā)明實施例中,如圖6所示,圖片由中心向邊緣呈輻射狀逐漸變暗。由于中心區(qū)域亮度變化較小,而邊緣區(qū)域亮度變化較大,如果方差閾值設(shè)定為統(tǒng)一的,那么很容易漏掉中心區(qū)域亮度值方差較小的輕微的污點,并且也很容易將邊緣區(qū)域亮度值方差本身比較大的地方誤判為污點。因此,在設(shè)定方差閾值時,將平均亮度值較大區(qū)域?qū)?yīng)的經(jīng)驗值設(shè)置的較小,將平均亮度值較小區(qū)域?qū)?yīng)的經(jīng)驗值設(shè)置的較大,也即中心區(qū)域的方差閾值小于邊緣區(qū)域的方差閾值。例如,圖片中心某個區(qū)域?qū)?yīng)的方差是400,加上一經(jīng)驗值100,得到方差閾值是500,那么即使是輕微的污點,例如方差為600,也很容易檢測出來。再如,圖片邊緣某個區(qū)域?qū)?yīng)的方差是600,加上一經(jīng)驗值300,得到方差閾值是900,這樣對于本身方差比較大的區(qū)域,根據(jù)經(jīng)驗由于其方差一般不會大于方差閾值900,因此也不會被誤判為污點。
綜上可知,利用這種測試算法,圖片中心區(qū)域即使有很輕微的污點,而由于污點所在測試單元對應(yīng)的方差閾值較小,因此很容易檢測出該污點。同樣,由于邊緣區(qū)域的方差閾值較大,亮度值方差本身比較大的地方也不會被誤判為污點。這樣大大提高了測試的準確度,避免復(fù)測,提高生產(chǎn)線的效率。
本發(fā)明實施例的其余方法與實施例一相同,此處不再贅述。
實施例三
如圖7所示,本發(fā)明實施例提供一種檢測鏡頭污點的裝置,該裝置包括:
方差閾值獲取模塊100,用于:
在與測試環(huán)境相同的拍攝條件下,利用無污點的鏡頭拍攝一張圖片或者從無污點的鏡頭拍攝的視頻中選取一張圖片;
獲取圖片不同亮度區(qū)域內(nèi)的中心像素點及其周圍預(yù)定步長內(nèi)若干像素點的亮度值;
計算中心像素點及其周圍預(yù)定步長內(nèi)若干像素點的平均亮度值和亮度值的方差;
根據(jù)平均亮度值為亮度值的方差加上一經(jīng)驗值,得到不同平均亮度值對應(yīng)的方差閾值,經(jīng)驗值隨平均亮度值的不同而變化。
對于亮度基本均勻的圖片,整個圖片的亮度方差是統(tǒng)一的,對應(yīng)的經(jīng)驗值也是統(tǒng)一的,因此該亮度水平下的圖片在測試不同區(qū)域時選取的方差閾值是相同的。但是平均亮度值不同的圖片,方差閾值是不同的。這樣就對拍攝的圖片亮度有一定的容錯率,隨圖片亮度值不同而選取不同的方差閾值,有利于算法更穩(wěn)定更準確的執(zhí)行,提高測試的準確度,避免復(fù)測,提高生產(chǎn)線的效率。
對于由中心向邊緣呈輻射狀逐漸變暗的圖片,在設(shè)定方差閾值時,將平均亮度值較大區(qū)域?qū)?yīng)的經(jīng)驗值設(shè)置的較小,將平均亮度值較小區(qū)域?qū)?yīng)的經(jīng)驗值設(shè)置的較大,也即中心區(qū)域的方差閾值小于邊緣區(qū)域的方差閾值,這樣,中心區(qū)域即使有很輕微的污點,而由于污點所在測試單元對應(yīng)的方差閾值較小,因此很容易檢測出該污點。同樣,由于邊緣區(qū)域的方差閾值較大,亮度值方差本身比較大的地方也不會被誤判為污點。這樣大大提高了測試的準確度,避免復(fù)測,提高生產(chǎn)線的效率。
圖片獲取模塊200,用于利用鏡頭拍攝一張圖片或者從鏡頭拍攝的視頻中選取一張圖片;
測試單元選取模塊300,用于在圖片的感興趣區(qū)域中以第一步長逐行或逐列選取測試像素點,并以第二步長在測試像素點周圍選取若干參照像素點,其中,第二步長大于第一步長的一半,每個測試像素點與其周圍的參照像素點組成一個測試單元;
亮度值方差獲取模塊400,用于根據(jù)每個測試單元內(nèi)的測試像素點及參照像素點的亮度值,計算每個測試單元內(nèi)的測試像素點及參照像素點的平均亮度值和亮度值的方差;
污點判定模塊500,用于將方差與預(yù)先獲取的所述平均亮度值對應(yīng)的方差閾值對比,如果方差大于方差閾值,則判定測試單元中的測試像素點為污點;
污點位置確定模塊600,用于輸出污點的像素位置,由污點的像素位置確定鏡頭污點的位置。
在本發(fā)明實施例中,該裝置還包括:
參照像素點亮度值獲取模塊,用于將感興趣區(qū)域之內(nèi)的參照像素點的亮度值,設(shè)置為自身正常的亮度值;將超出感興趣區(qū)域但未超出圖片區(qū)域的參照像素點的亮度值,用其所在測試單元內(nèi)的測試像素點的亮度值代替;將超出圖片區(qū)域的參照像素點,作為無效像素點去掉;
在本發(fā)明實施例中,該裝置還包括:
感興趣區(qū)域劃分模塊,用于將感興趣區(qū)域之外的像素點的亮度值設(shè)置為255;若在感興趣區(qū)域中逐行選取測試像素點,則將感興趣區(qū)域每行最大列和最小列之外的像素點的亮度值設(shè)置為255,若在感興趣區(qū)域中逐列選取測試像素點,則將感興趣區(qū)域每列的最大行和最小行之外的像素點的亮度值設(shè)置為255。
感興趣區(qū)域為圖片的部分或者全部,感興趣區(qū)域的形狀為圓形、正方形或多邊形;感興趣區(qū)域劃分模塊,具體用于在感興趣區(qū)域為圓形時,將與圓心距離大于圓形半徑的像素點的亮度值設(shè)置為255。
綜上所述,本發(fā)明實施例一至三提供了一種檢測鏡頭污點的方法和裝置,通過計算測試單元的亮度方差并與方差閾值對比,從而判斷污點位置,不僅適合亮度基本均勻的圖片,而且適合由中心向邊緣呈輻射狀逐漸變暗的圖片。一方面,對于亮度基本均勻的圖片,測試不同區(qū)域時選取的方差閾值是相同的。而平均亮度值不同的圖片,方差閾值是不同的。這樣就對拍攝的圖片亮度有一定的容錯率,隨圖片亮度值不同而選取不同的方差閾值,有利于算法更穩(wěn)定更準確的執(zhí)行,提高測試的準確度,避免復(fù)測,提高生產(chǎn)線的效率。另一方面,對于由中心向邊緣呈輻射狀逐漸變暗的圖片,中心亮度較高區(qū)域?qū)?yīng)的方差閾值小于邊緣亮度較低區(qū)域?qū)?yīng)的方差閾值,這樣,中心區(qū)域即使有很輕微的污點,而由于污點所在測試單元對應(yīng)的方差閾值較小,因此很容易檢測出該污點。同樣,由于邊緣區(qū)域的方差閾值較大,亮度值方差本身比較大的地方也不會被誤判為污點。這樣大大提高了測試的準確度,避免復(fù)測,提高生產(chǎn)線的效率。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。