一種校正圖像桶形失真的方法和裝置的製作方法
2023-06-07 04:25:51 1
專利名稱:一種校正圖像桶形失真的方法和裝置的製作方法
技術領域:
本發明涉及圖像處理技術領域,特別涉及一種校正圖像桶形失真的方法和裝置。
背景技術:
廣角鏡頭由於視角的寬廣而被廣泛地應用於攝像領域,但是,應用廣角鏡頭時會 存在由鏡頭引起的成像畫面呈桶形膨脹狀的現象,即桶形失真,這種失真會嚴重影響實際 攝像的效果,因而需要對圖像桶形失真進行校正。
目前,校正圖像桶形失真的方法很多,比如,控制點法和模式法等,圖1為現有技 術圖像桶形失真校正方法實施例的流程圖,該方法包括以下步驟
步驟101 :對發生桶形失真的圖像進行存儲。 在對發生桶形失真的圖像進行校正之前,首先要對所要校正的圖像進行存儲,由 於一幅圖像中有很多的像素點,也即圖像的數據量很大,因此需要存儲空間比較大的存儲 單元來存儲發生桶形失真的圖像。
步驟102 :對圖像中的每一個圖像數據分別進行校正。 鑑於桶形失真圖像本身的特點,對發生桶形失真的圖像進行校正時需要對圖像上 的每一個圖像數據分別進行校正,具體校正方法如下 假設(X, Y)是桶形失真圖像中某個圖像數據的坐標,(Xd, Yd)是圖像的中心坐標, (X' ,Y')是對圖像進行校正後坐標為(X,Y)的圖像數據應該在的坐標,z是(X,Y)到(Xd, Yd)的距離,則有 X' _Xd = (X_Xd)*M(z) (1)
Y' _Yd = (Y_Yd)*M(z) (2)
其中,M(z)是一個與距離z有關的參數,令M(z) = l+A化"2,A是一個為負值的系 數,它的值是在已知所有坐標的前提下通過對公式(1)或(2)逆推得到的。
將M(z) = l+A化"2代入公式(1)和(2)並展開,得到
X' -X = (X_Xd)*A*z~2 (3)
Y' -Y = (Y-Yd)*A*z'2 (4) 其中,所述+表示加號,所述_表示減號,所述*表示乘號,所述'表示乘方號。
對發生桶形失真的圖像中的圖像數據進行校正時,將圖像中該圖像數據所在的坐 標按照式(3)和(4)進行計算得到一對新的坐標,得到的新的坐標上對應的圖像數據即為 對原始坐標上的圖像數據進行校正後的值。 步驟103 :將所有校正後得到的圖像數據串行輸出得到最終所需圖像。 在對發生桶形失真的圖像進行失真校正時,是按照圖像數據串行輸入存儲單元中
的順序來對圖像中的每一個圖像數據分別進行校正的,對每個圖像數據分別校正完後,將
校正後得到的圖像數據串行輸出得到最終所需圖像,即對發生桶形失真的圖像進行校正後
的圖像。 基於上述方法,圖2為現有技術圖像桶形失真校正裝置實施例的組成結構示意圖。如圖2所示,該裝置包括 存儲單元21,用於對發生桶形失真的圖像進行存儲。 在對發生桶形失真的圖像進行校正之前,首先要對該圖像進行存儲,現有技術中 由於是對一整幅圖像直接進行校正處理,而且圖像的數據量很大,因此,需要存儲空間比較 大的存儲單元來對圖像進行存儲。 計算單元22,用於對存儲單元21中存儲的圖像進行校正。 在對發生桶形失真的圖像進行校正時,需要對圖像中的每一個圖像數據分別進行 校正,並且對每個圖像數據進行校正時是按照圖像數據串行輸入存儲單元21中的順序來 進行的。 輸出單元23,用於將校正後的圖像數據進行輸出得到最終所需圖像。 將計算單元22中進行校正後的圖像數據進行輸出時,是將校正後得到的每個圖
像數據串行輸出的,將全部圖像數據進行校正完並輸出後,即得到最終所需的校正後圖像。 圖2所示裝置的具體工作流程參照圖1所示方法實施例中的相應說明。 通過以上分析可以看出,現有技術中對圖像桶形失真進行校正的方法雖然能夠比
較好地校正圖像桶形失真,但是需要對發生桶形失真的圖像預先進行存儲,即需要很大的
存儲空間,因此,現有方法都是在存儲空間大的數位訊號處理(DSP)中實現的,具有存儲功
能的cmos圖像傳感器(CIS)成本很低,但存儲空間又太小。
發明內容
有鑑於此,本發明的主要目的在於提供一種校正圖像桶形失真的方法,能夠在減 少存儲空間的基礎上對圖像桶形失真進行有效地校正。 本發明的另一目的在於提供一種校正圖像桶形失真的裝置,能夠在減少存儲空間 的基礎上對圖像桶形失真進行有效地校正。 為達到上述目的,本發明的技術方案具體是這樣實現的
—種校正圖像桶形失真的方法,包括 對採集到的圖像插入行列數據,得到插入行列數據後圖像; 串行輸入所述插入行列數據後圖像,並將其中的部分圖像存儲到存儲單元; 對所述存儲單元中的一個圖像數據進行校正並輸出,繼續存儲未被存儲的串行輸
入的所述插入行列數據後圖像中的圖像數據,重複執行本步驟的校正、輸出、繼續存儲過
程,直至輸出全部插入行列數據後圖像中的圖像數據,得到校正後圖像。 —種校正圖像桶形失真的裝置,該裝置包括 行列插值單元,用於對從桶形失真的圖像插入行列數據後,串行輸入存儲單元;
存儲單元,用於對由行列插值單元得到的插入行列數據後的圖像中的部分圖像依 次進行存儲; 計算單元,用於對存儲單元中的部分圖像依次進行校正;
輸出單元,用於將校正後的圖像進行輸出。 由上述的技術方案可見,本發明採用的對圖像桶形失真進行校正的方法首先對 採集到的圖像插入行列數據,之後存儲單元對串行輸入的插入行列數據後圖像中的部分圖 像依次進行存儲,最後對部分圖像中的矩陣數據塊依次進行校正得到最終所需的校正後圖像。可以看出,該方案採用了依次對存儲的串行輸入存儲單元中的部分圖像進行校正,而且 是邊存儲、邊校正、邊輸出,由於並不是對數據量很大的一整幅圖像中的圖像數據全部進行 存儲後再校正,因此,應用本發明所述的方法能夠在減少存儲空間的基礎上對圖像桶形失 真進行有效地校正。
圖1為現有技術圖像桶形失真校正方法實施例的流程圖。 圖2為現有技術圖像桶形失真校正裝置實施例的組成結構示意圖。 圖3為本發明圖像桶形失真校正方法實施例的流程圖。 圖4為本發明採用的bayer格式的圖像形式。 圖5為本實施例採用的bayer格式的8*8的圖像。 圖6為本實施例對8*8的圖像插入兩行兩列數據後的圖像。 圖7為本實施例對第一個圖像數據進行校正時所存儲的部分圖像。 圖8為本實施例存儲的第一個部分圖像中的3*3的矩陣數據塊。 圖9為本實施例對第一個圖像數據進行校正後所存儲的部分圖像。 圖10為本實施例幾個部分圖像中的幾個特殊的3*3的矩陣數據塊。 圖11為本發明圖像桶形失真校正裝置實施例的組成結構示意圖。 圖12為桶形失真圖像及採用本實施例的方法對其進行校正後的圖像示意圖。
具體實施例方式
為解決現有技術中存在的問題,本發明提出一種對圖像桶形失真進行校正的方 法,首先對採集到的圖像插入行列數據,之後存儲單元對串行輸入的插入行列數據後圖像 中的部分圖像依次進行存儲,最後對部分圖像中的矩陣數據塊依次進行校正得到最終所需 的校正後圖像,該方法能夠在減少存儲空間的基礎上對圖像桶形失真進行有效地校正。
在介紹具體的實現方案之前,首先介紹一下紅綠藍(RGB)色彩模型的概念。RGB色 彩模型是工業界的一種顏色標準,通過對R、 G、 B三個顏色通道進行變化以及對它們相互之 間進行疊加來得到各種各樣的顏色,所以,對於圖像中的每一個像素點,均可用R、G、B三個 分量(通道)來表示。通常,每個分量的取值範圍為0 255;這樣,當R、G、B分量分別取 不同的值時,對應表示的顏色也將不同。比如,純紅色的R分量值為255,G分量值和B分量 值均為0 ;亮紅色的R分量值為246, G分量值為20, B分量值為50。 基於上述介紹,本發明所述方案的具體實現包括對採集到的圖像插入行列數據,
得到插入行列數據後圖像;串行輸入所述插入行列數據後圖像,並將其中的部分圖像存儲
到存儲單元;對所述存儲單元中的一個圖像數據進行校正並輸出,繼續存儲未被存儲的串
行輸入的所述插入行列數據後圖像中的圖像數據,重複執行本步驟的校正、輸出、繼續存儲
過程,直至輸出全部插入行列數據後圖像中的圖像數據,得到校正後圖像。 為使本發明的目的、技術方案及優點更加清楚明白,以下參照附圖並舉實施例,對
本發明進一步詳細說明。 圖3為本發明圖像桶形失真校正方法實施例的流程圖。如圖3所示,包括以下步 驟
步驟301 :採集桶形失真的圖像。 要對圖像桶形失真進行校正,首先要採集發生了桶形失真的圖像,在本實施例中, 可以通過CIS中的圖像採集單元直接採集圖像,也可採用其它的桶形失真圖像的採集方 法。 步驟302 :將採集到的圖像由RGB格式轉換為bayer格式。 經過步驟301的操作可以採集到發生了桶形失真的圖像,採集到的圖像可能為 RGB格式的,即每個圖像數據均包含了 R、G、B三個分量,也即每個圖像數據都包含了三個信 息,因此,對這種格式的圖像進行桶形失真校正時需要較大的存儲空間。
為了減少由於RGB格式本身的特點而帶來的存儲空間的浪費,本實施中採用了將 RGB格式的圖像轉換為bayer格式的圖像,圖4為本發明採用的bayer格式的圖像形式。如 圖4所示,在bayer格式的圖像中,每個像素點的信息只有R、 G、 B三個分量中的一個,相比 RGB格式的圖像中每個點的信息均包含了 R、 G、 B三個分量來說,對bayer格式的圖像進行 桶形失真校正會減少運算時所需要的存儲空間。 如果採集到的圖像為bayer格式的,可以不進行該步驟的操作,而將bayer格式的 圖像直接進行後續操作。 在本實施例中,採用了對bayer格式的圖像進行校正是利用了 bayer格式的特點 從而進一步能減少所需要的存儲空間,實際對圖像桶形失真進行校正時也可以省略該步 驟,而直接對採集到的RGB格式的圖像進行後續的操作。
步驟303 :對圖像插入行列數據。 在本實施例中,所有圖像均是以串行圖像數據流的形式來完成輸入和輸出的,因 此,bayer格式的圖像也是串行輸入、串行輸出的,每個圖像數據逐個輸入,首次輸入第一行
第一列中的一個圖像數據,然後第二列中的一個圖像數據......直到本行最後一列中的
一個圖像數據;再對第二行中的每個圖像數據依次輸入,接下來第三行......直至最後一
行最後一列中的最後一個圖像數據。 圖5為本實施例採用的bayer格式的8*8的圖像。在圖5中,字母部分代表的是 該圖像數據的形式,數字部分代表的是該圖像數據在圖像中的坐標。圖5中的圖像串行輸 入時,輸入圖像數據流的形式為Bll G12 B13 G14 B15 G16 B17 G18 G21 R22 G23......R88。 本實施例中,在對bayer格式的圖像進行桶形失真校正之前,還需要對圖像進行 插入行列數據的操作,對圖像插入行列數據是在圖像的中心處插入行列並在所述插入的行 列中插入數據。 以下舉例說明對圖像插入行列數據的原因以及插入行列數據時所採用的方法。
以圖5中的圖像為例,在存儲空間一定的條件下,假設對坐標為(6,7)上的圖像數 據G67進行校正時,G56已經被串行輸入的其它圖像數據覆蓋了,而鑑於桶形失真圖像本身 的特點,對於桶形失真的圖像來說,G67很可能被校正為G56,但此時G56已經不存在了,這 樣校正後輸出的圖像數據會變得不連續,並且造成了圖像數據的丟失。因此,在這種情況 下,只能採取對更多的圖像數據進行存儲以保證輸出圖像數據的連續性,從而增大了存儲 空間。但是,如果在對圖像進行校正之前,已經對圖像插入了行列數據,那麼同樣在對G67 進行校正時,由於在圖像中心處插入了行列,此時後續串行輸入的圖像數據可能先輸入到了插入的行列中,即圖像數據G56還在存儲單元中,並且保證了輸出圖像數據的連續性,還 充分節省了存儲空間。 通過上述分析看出,本實施例中,對圖像插入行列數據是一種節省存儲空間的行 之有效的方法。 在圖像的中心處需要插入行列的行列數由圖像的行列數決定,具體計算公式為
假設圖像的尺寸為m^,則圖像上任意一點到圖像中心點的最大距離為 (m/2)'2+(n/2)'2,這些距離最大的點就是圖像的四個頂點,將此距離代入式(3)與式(4), 得到X' -X = (X-Xd) *A*z ~ 2 = (m/2) *A* ((m/2) ~ 2+ (n/2) ~ 2),
Y' -Y = (Y-Yd) *A*z ~ 2 = (n/2) *A* ((m/2)~ 2+ (n/2)~ 2),故,
d_X = I I (m/2) *A* ((m/2) ~2+(n/2) ~2) | | ,
d_Y = I I (n/2) *A* ((m/2) ~2+ (n/2) ~2) | | , 其中,所述m為圖像總行數,所述n為圖像總列數;所述A是一個為負值的係數;所 述cLX為插入的行數,所述cLY為插入的列數;所述/表示除號,所述I I表示取絕對值,所
述「,表示上取整。 由此,即可得到需要在圖像的中心處插入行列的行列數和後續對圖像進行校正時 需要計算的矩陣數據塊的尺寸,插入的行數為cLX,列數為cLY,矩陣數據塊的尺寸為(d_ X+l)*(d_Y+l),即矩陣數據塊的尺寸也由圖像的行列數決定。 圖6為本實施例對8*8的圖像插入兩行兩列數據後的圖像。也即在圖5中的圖 像的中心處插入了兩行兩列的數據,空白處即為插入的數據,所述插入的數據可以為任意 的數據且該數據在後續對圖像桶形失真進行校正的過程中始終為無效的,在本實施例中用 Non來代表插入的數據。 經過插入行列數據後的圖6中的圖像串行輸入時,輸入圖像數據流變為Bll G12 B13 G14 Non Non B15 G16 B17 G18 G21 R22 G23......R48Non......Non
R51......R88。 步驟304 :對插入行列數據後的部分圖像依次進行存儲。 插入行列數據後圖像串行輸入後,需要將輸入的圖像數據存儲起來。在本實施例 中,以圖6中的圖像為例來說明對插入行列數據後圖像中的圖像數據進行存儲的過程。在 圖6中,由於對圖像進行的是插入兩行兩列的數據,因此,需要計算的矩陣數據塊的尺寸為 3*3,故存儲單元至少需要存儲兩行或兩列的圖像數據,本實施例中以至少存儲兩行圖像數 據為例,首先存儲串行輸入存儲單元的第一行和第二行中所有的圖像數據,接著,第三行中 的圖像數據串行輸入,在存儲了該行中的B31, G32和B33後,此時,存儲單元中所存儲的圖 像數據如圖7所示,圖7為本實施例對第一個圖像數據進行校正時所存儲的部分圖像。同 樣地,對第一個圖像數據Bll進行校正時所需要的3*3矩陣數據塊內的圖像數據也都被存 儲下來了 ,此時所存儲的矩陣數據塊如圖8所示,圖8為本實施例存儲的第一個部分圖像中 的3*3的矩陣數據塊。 對圖像桶形失真進行校正時,是在部分圖像的矩陣數據塊中進行的,首先,對圖像 中坐標為(l,l)上的圖像數據B11在圖8中所述的矩陣數據塊中進行校正,並將校正後得 到的圖像數據直接進行輸出,同時下一個圖像數據G34輸入存儲單元中,將G34直接存儲在已經校正並輸出後的B11所在的位置即可,此時,存儲單元中所存儲的圖像數據如圖9所 示,圖9為本實施例對第一個圖像數據進行校正後所存儲的部分圖像。之後,在圖9中所包 含的3*3的矩陣數據塊中對G12進行校正並輸出,同時下一個數據B35輸入部分圖像中並 存儲在G12所在的位置中得到第三個部分圖像,按照同樣的方式將每一個圖像數據進行串 行輸出輸入,即得到進行存儲的每一個部分圖像。 所述存儲的部分圖像是一種不規則的圖像,它的尺寸,也即它所需要的存儲空間 的大小是由圖像的行列數決定的,部分圖像的尺寸按下式進行計算
(d_X* (n+d_Y)) + (d_Y+l)。 需要說明的是,在本實施例中,當Bll進行完校正後,Bll在以後的圖像桶形失真 校正的過程中不會被用到,因此,將串行輸入未被存儲的下一個圖像數據直接存儲在該Bll 所在的位置中將其覆蓋,再重複執行對B11後的圖像數據進行校正並輸出、再對串行輸入 的圖像數據進行存儲,這樣可以最大程度地節省存儲空間。具體的校正方法在下面進行詳 細說明。 本步驟對圖像中的部分圖像進行依次存儲可以充分地節省存儲空間,而且,在後 續的校正處理過程中,後續串行輸入的一個圖像數據依次佔有上次圖像數據的位置,並不 需要額外的存儲空間,從而與現有技術對一整幅圖像中的所有圖像數據全部進行存儲來 說,大大節省了存儲空間。 步驟305 :對存儲的部分圖像中的矩陣數據塊依次進行校正。
該步驟中的具體校正計算過程同步驟102。 對每一個矩陣數據塊進行校正時是只對該矩陣數據塊中的一個圖像數據來說的, 以下舉例說明本實施例中的具體校正過程 以圖8中存儲的第一個部分圖像中的3*3的矩陣數據塊為例,此時需要校正的圖 像數據為B11,B11在圖像中的坐標為(1,1),見圖6,圖像中心的坐標為(4,4),則
z'2 = (1-4) ~2+(1_4) ~2 = 18,將其代入式(3)與式(4)得到,
X' -X = (X_Xd)*A*z~2 = (1_4)*A*18 = _54*A,
Y' -Y = (Y_Yd)*A*z~2 = (1_4)*A*18 = _54*A,
令A二-l/27,則有
X' -X = 2,
Y' -Y = 2, 即(X,Y)應該在的坐標為(X' ,Y'),也即(3,3),對B11進行校正後的值為坐標 (3, 3)上對應的圖像數據B33的值。 圖10為本實施例幾個部分圖像中的幾個特殊的3*3的矩陣數據塊,下面分別以圖 10中的這幾個特殊的矩陣數據塊為例對其校正過程進行說明。 對圖10(a)來說,此時需要進行校正的圖像數據為G14,它在圖像中的坐標為(1, 4),見圖6,圖像中心的坐標仍為(4,4),則 z~2 =(卜4) ~2+(4-4) ~2 = 9,將其代入式(3)與式(4)得到,
X' -X = (X-Xd)*A*z~2 = (1-4)*A*18 = _54*A,
Y' -Y = (Y-Yd)*A*z~2 = (4_4)*A*18 = 0,
同樣,令A = _1/27,則有,
X' -X = 1,
Y' -Y = 0, (X,Y)應該在的坐標為(X' ,Y'),也即(2,4),對G14進行校正後的值為坐標(2,
4) 上的圖像數據R24的值,與待處理的圖像數據G14不一致了 ,因此需要對R24進行插值後 再賦給G14進行輸出,這裡進行插值後的值為(G14+G34)/2。 由此,需要說明的是,由於採用的是bayer格式的圖像,因此當對圖像數據進行校 正時可能會出現校正後的圖像數據形式與需要校正的圖像數據形式不一致的情況,當出現 不一致的情況時,對校正後的圖像數據進行插值再將插值後的結果作為對圖像數據進行校 正的最終結果進行輸出即可。 對於圖10(b)中的B15來說,在未對圖像插入行列數據之前,該圖像數據與圖 10(a)中的G14是連續的,為了保證圖像數據輸入輸出的連續性,對B15進行校正後的圖像 數據也應為B的形式,下面具體分析其校正過程。 需要校正的圖像數據B15在圖像中的坐標為(1,5),見圖6,圖像中心的坐標仍為 (4,4),則 z~2 = (1-4)~2+(5-4)~2 = IO,將其代入式(3)與式(4)得到,X' -X = (X-Xd)*A*z~2 = (1-4)*A*10 = _30*A,Y' -Y = (Y-Yd)*A*z~2 = (5_4)*A*10 = 10*A, 同樣,令A = _1/27,則有, X' -X = 30/27, Y' -Y =-10/27, 由於坐標均為整數,因此,需要對分數進行取整,這裡對其統一進行了向零取整的 操作,從而, (X,Y)應該在的坐標為(X' ,Y'),也即(2,5),對B15進行校正後的值為坐標(2,
5) 上的圖像數據G25的值,與待處理的圖像數據B15不一致了 ,因此需要對G24進行插值後 再賦給B15進行輸出,這裡進行插值後的值為(B15+B35)/2。 這樣,保證了對行列插值後的圖像進行校正後的圖像數據的連續性。 同樣地,對圖10(c)中的G41和圖10(d)中的B51進行校正後的圖像數據在縱向
上也是連續的,對圖10(e)中的G74和圖10(f)中的B75進行校正後的圖像數據在橫向上
也是連續的,從而保證了對行列插值後的圖像進行校正後輸出的圖像數據都是連續的。 在本實施例中,對每一個圖像數據進行校正時,都是在其所對應的矩陣數據塊中
進行的,而且在一個矩陣數據塊中進行校正時只能針對其中的一個圖像數據,當對該矩陣
數據塊中的某一個圖像數據校正並輸出後,此時對應的矩陣數據塊為下一個圖像數據輸入
後存儲的部分圖像所對應的矩陣數據塊,之後再在該矩陣數據塊中對其中的某一個圖像數
據進行校正並輸出,得到另一個部分圖像所對應的矩陣數據塊,照此過程進行到最後一個
圖像數據校正後輸出即完成了對部分圖像中的矩陣數據塊依次進行校正。 步驟306 :將校正後bayer格式的圖像轉換為RGB格式的圖像。 對插入行列數據後圖像中每一個圖像數據進行完校正之後,得到的是bayer格式
的圖像,為了進行輸出顯示需要將bayer格式的圖像再轉換為適合顯示的RGB格式的圖像。 步驟307 :將轉換後的RGB格式的圖像串行輸出得到最終所需圖像。
轉換為RGB格式的圖像後,將該圖像按照串行形式進行輸出即得到了最終所需圖 像,即對發生桶形失真的圖像進行校正後的圖像。 至此,即完成了本發明所述圖像桶形失真進行校正的處理過程。 基於上述方法,圖11為本發明圖像桶形失真校正裝置實施例的組成結構示意圖。
如圖ll所示,該裝置包括 圖像採集單元lll,用於採集桶形失真的圖像。 要對圖像桶形失真進行校正,首先要通過圖像採集單元111採集發生了桶形失真 的圖像,該單元採集到的圖像可能為RGB格式,也可能為bayer格式,在本實施例中,可以通 過圖像採集單元111直接採集圖像,也可採用其它的桶形失真圖像的採集方法。
第一轉換單元112,用於對由圖像採集單元111得到的圖像進行RGB格式到bayer 格式的轉換,並將轉換後的圖像送所述行列插值單元113。 如果通過圖像採集單元111採集到的是RGB格式的桶形失真圖像,由於RGB格式 的圖像中每個圖像數據均包含了 R、 G、 B三個分量,也即每個圖像數據都包含了三個信息, 因此,對這種格式的圖像進行桶形失真校正時需要較大的存儲空間。 為了減少由於RGB格式本身的特點而帶來的存儲空間的浪費,本實施中採用了將
RGB格式的圖像轉換為bayer格式的圖像,bayer格式的圖像中,每個像素點的信息只有R、
G、 B三個分量中的一個,相比RGB格式的圖像中每個點的信息均包含了 R、 G、 B三個分量來
說,對bayer格式的圖像進行桶形失真校正會減少運算時所需要的存儲空間。 在本實施例中,採用了對bayer格式的圖像進行校正是利用了 bayer格式的特點
從而進一步能減少所需要的存儲空間,實際對圖像桶形失真進行校正時也可以省略該單元
的操作,而直接對採集到的RGB格式的圖像輸入後續處理單元。 行列插值單元113,用於對桶形失真圖像插入行列數據後,串行輸入存儲單元 115。 用於對由第一轉換單元112中的bayer格式的圖像進行插入行列數據的操作,對 圖像插入行列數據後可以在保證輸入圖像數據和輸出圖像數據連續性的前提下,充分節省 所需要的存儲空間,對圖像插入行列數據時是在圖像的中心處插入行列並在所述插入的行 列中插入數據來實現的,所述需要插入行列的行列數由圖像的行列數決定,具體計算公式 如下 假設圖像的尺寸為m^,則圖像上任意一點到圖像中心點的最大距離為 (m/2)'2+(n/2)'2,這些距離最大的點就是圖像的四個頂點,將此距離帶入式(3)與式(4), 得到 formula see original document page 11
其中,所述m為圖像總行數,所述n為圖像總列數;所述A是一個為負值的係數;所 述d_X為插入的行數,所述d_Y為插入的列數;所述+表示加號,所述_表示減號,所述*表
示乘號,所述/表示除號,所述~表示乘方號,所述I I表示取絕對值,所述「,表示上取整。
由此,即可得到需要在圖像的中心處插入行列的行列數和後續對圖像進行校正時需要計算的矩陣數據塊的尺寸,插入的行數為cLX,列數為cLY,矩陣數據塊的行數為d_ X+l,列數為cLY+l,總的尺寸為(cLX+l^(cLY+l),即矩陣數據塊的尺寸也由圖像的行列數 決定。 需要說明的是,如果圖像採集單元lll採集到的圖像為bayer格式,也可以省略該 單元的操作,而直接進行後續單元的操作即可。 控制單元114,用於控制圖像採集單元111中採集桶形失真圖像時的圖像數據流 和控制行列插值單元113中插入行列數據時需要插入的行列數。 在本實施中,採用的是對串行輸入的插入行列數據後圖像中的部分圖像進行存儲 和對部分圖像中的矩陣數據塊進行校正的方法,因此,需要控制單元114來對輸入的圖像 數據流進行控制,使得存儲單元中的圖像數據能保持一定的數據量。 行列插值單元113中需要插入的行列數也是通過控制單元114來進行控制的,控 制單元114首先根據圖像的尺寸計算出需要在圖像中插入的行列數,然後按照計算得到的 行列數來對圖像進行行列插值,而且,計算得到的行列是在圖像的中心處進行插入的。
存儲單元115,用於對由行列插值單元113得到的插入行列數據後圖像中的部分 圖像依次進行存儲。 為了對圖像進行校正,需要用存儲單元115將該圖像中的部分圖像進行存儲。在 該單元中對圖像中的部分圖像依次進行存儲可以充分地節省存儲空間,而且,在後續的校 正處理過程中,後續輸入的一個圖像數據依次存儲在上次校正後的一個圖像數據所在的位 置,並不需要額外的存儲空間,從而與現有技術對一整幅圖像中的圖像數據全部進行存儲 來說,大大節省了存儲空間。 計算單元116,用於對存儲單元115中的存儲的部分圖像依次進行校正。 在本實施例中,對每一個圖像數據進行校正時,都是在其所對應的矩陣數據塊中
進行的,而且在一個矩陣數據塊中進行校正時只能針對其中的一個圖像數據,當對該矩陣
數據塊中的某一個圖像數據校正並輸出後,此時對應的矩陣數據塊為下一個圖像數據輸入
後存儲的部分圖像所對應的矩陣數據塊,之後再在該矩陣數據塊中對其中的某一個圖像數
據進行校正並輸出,得到另一個部分圖像所對應的矩陣數據塊,照此過程進行到最後一個
圖像數據校正後輸出即完成了對部分圖像中的矩陣數據塊依次進行校正。 需要說明的是,本實施例中,當採用對bayer格式的圖像進行校正時,可能會出現
校正後的圖像數據形式與需要校正的圖像數據形式不一致的情況,當出現不一致的情況 時,對校正後的圖像數據進行插值再將插值後的結果作為對圖像數據進行校正的最終結果 進行輸出即可。 第二轉換單元117,用於對由計算單元116得到的校正後的bayer格式的圖像轉換 為RGB格式的圖像,並將轉換後的校正後圖像送所述輸出單元118。 由於bayer格式的圖像並不適合輸出顯示,因此,對圖像中每一個坐標點上的圖 像數據進行完校正後,為了進行輸出顯示需要將bayer格式的圖像轉換為適合輸出的RGB 格式的圖像。 輸出單元118,用於將由轉換單元117中得到的RGB格式的圖像進行輸出。
轉換為RGB格式的圖像後,將該圖像按照串行形式進行輸出即得到了最終所需圖 像,即對發生桶形失真的圖像進行校正後的圖像。
12
圖11所示裝置的具體工作流程請參照圖3所示方法實施例中的相應說明,此處不 再贅述。 圖12為桶形失真圖像及採用本實施例的方法對其進行校正後的圖像示意圖。在 圖12中,虛線為發生了桶形失真的圖像,從圖中可以看出圖像存在較明顯的桶形失真,實 線為對發生了桶形失真的圖像進行校正後的圖像,經過校正後,圖像桶形失真得到了明顯 地消除。 總之,本發明所述的技術方案,首先對採集到的圖像插入行列數據,之後存儲單元 對串行輸入的插入行列數據後圖像中的部分圖像依次進行存儲,最後對部分圖像中的矩陣 數據塊依次進行校正得到最終所需的校正後圖像。可以看出,該方案採用了依次對存儲的 串行輸入存儲單元中的部分圖像進行校正,而且是邊存儲、邊校正、邊輸出,由於並不是對 數據量很大的一整幅圖像中的圖像數據全部進行存儲後再校正,因此,應用本發明所述的 方法能夠在減少存儲空間的基礎上對圖像桶形失真進行有效地校正。 綜上所述,以上僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍。 凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的 保護範圍之內。
權利要求
一種校正圖像桶形失真的方法,其特徵在於,該方法包括對採集到的圖像插入行列數據,得到插入行列數據後圖像;串行輸入所述插入行列數據後圖像,並將其中的部分圖像存儲到存儲單元;對所述存儲單元中的一個圖像數據進行校正並輸出,繼續存儲未被存儲的串行輸入的所述插入行列數據後圖像中的圖像數據,重複執行本步驟的校正、輸出、繼續存儲過程,直至輸出全部插入行列數據後圖像中的圖像數據,得到校正後圖像。
2. 如權利要求1所述的方法,其特徵在於,所述對採集到的圖像插入行列數據之前還 包括將所述採集到的圖像由RGB格式轉換為bayer格式的步驟。
3. 如權利要求1所述的方法,其特徵在於,所述採集到的圖像為bayer格式。
4. 如權利要求2或3所述的方法,其特徵在於,對所述bayer格式的圖像插入行列數據 是在圖像的中心處插入行列,在所述插入的行列中插入數據。
5. 如權利要求4所述的方法,其特徵在於,所述在圖像的中心處插入行列的行列數由 圖像的行列數決定,計算公式如下d_X = I I (m/2) *A* ((m/2) ~2+(n/2) ~2) | | , d_Y = I I (n/2) *A* ((m/2) ~2+(n/2) ~2) | | ,其中,所述m為圖像總行數,所述n為圖像總列數;所述A是一個為負值的係數;所述 d_X為插入的行數,所述d_Y為插入的列數;所述+表示加號,所述*表示乘號,所述/表示除號,所述~表示乘方號,所述I I表示取絕對值,所述「,表示上取整。
6. 如權利要求5所述的方法,其特徵在於,所述部分圖像,其尺寸為(d_X*(n+d_ Y)) + (d_Y+l)。
7. 如權利要求5所述的方法,其特徵在於,所述對所述存儲單元中的一個圖像數據進 行校正是在所述存儲單元的矩陣數據塊中進行。
8. 如權利要求7所述的方法,其特徵在於,所述矩陣數據塊的尺寸由圖像的行列數決 定,其尺寸為(d_X+l)*(d_Y+l)。
9. 如權利要求1所述的方法,其特徵在於,所述對所述存儲單元中的一個圖像數據進 行校正後還進一步包括對所述校正後的圖像數據進行插值。
10. 如權利要求1所述的方法,其特徵在於,還包括將校正後圖像由bayer格式轉換為 RGB格式的步驟。
11. 一種校正圖像桶形失真的裝置,其特徵在於,該裝置包括 行列插值單元,用於對桶形失真的圖像插入行列數據後,串行輸入存儲單元; 存儲單元,用於對由行列插值單元得到的插入行列數據後圖像中的部分圖像依次進行存儲;計算單元,用於對存儲單元中的部分圖像依次進行校正; 輸出單元,用於將校正後的圖像進行輸出。
12. 如權利要求11所述的裝置,其特徵在於,該裝置還包括 圖像採集單元,用於採集桶形失真的圖像。
13. 如權利要求12所述的裝置,其特徵在於,該裝置還包括第一轉換單元,用於對由圖像採集單元得到的圖像進行RGB格式到bayer格式的轉換, 並將轉換後的圖像送所述行列插值單元。
14. 如權利要求13所述的裝置,其特徵在於,該裝置還包括第二轉換單元,用於對由計算單元得到的校正後的圖像進行bayer格式到RGB格式的 轉換,並將轉換後的圖像送所述輸出單元。
15. 如權利要求12所述的裝置,其特徵在於,該裝置還包括控制單元,用於控制圖像採集單元中採集桶形失真圖像的數據流和控制行列插值單元 中插入行列數據時的行列數。
全文摘要
本發明公開了一種校正圖像桶形失真的方法,包括首先對採集到的圖像插入行列數據,得到插入行列數據後圖像;串行輸入所述插入行列數據後圖像,並將其中的部分圖像存儲到存儲單元;對所述存儲單元中的一個圖像數據進行校正並輸出,繼續存儲未被存儲的串行輸入的所述插入行列數據後圖像中的圖像數據,重複執行本步驟的校正、輸出、繼續存儲過程,直至輸出全部插入行列數據後圖像中的圖像數據,得到校正後圖像。本發明同時公開了一種校正圖像桶形失真的裝置。應用本發明所述的方法和裝置能夠在減少存儲空間的基礎上對圖像桶形失真進行有效地校正,而且還可以在存儲空間很小但成本很低的CIS中實現對圖像桶形失真的校正,節約成本。
文檔編號H04N1/387GK101771796SQ20081018915
公開日2010年7月7日 申請日期2008年12月29日 優先權日2008年12月29日
發明者宋敏, 彭茂, 肖本懿 申請人:比亞迪股份有限公司