基于透明度的摳圖方法和裝置的制造方法
【技術領域】
[0001] 本發明實施例涉及圖像處理技術,尤其涉及一種基于透明度的摳圖方法和裝置。
【背景技術】
[0002] 摳圖技術是一種把任意圖像中的前景部分從背景中分離出來的一種圖像處理技 術。在雜志封面、插圖設計,廣告和影視創作等方面有著廣泛而深入的應用。摳圖的方式有 多種,其中,應用最廣泛的是alpha摳圖技術。
[0003] 采用alpha摳圖技術進行摳圖時,一般認為一幅自然圖像中的各個像素點的顏色 是該點前景顏色和背景顏色的線性組合,線性系數表示前景顏色在該點顏色中所占的比 重,數值在[0, 1]之間變化。具體的關系如公式(1. 1)所示:
[0004] I = a F+(l-a )B (1. 1)
[0005] 其中,I表示該點的顏色值,F和B分別表示該點的前景顏色值和背景顏色值,α 為線性組合的系數,表示該點的透明度。對于alpha摳圖問題,對圖像上的任一點,根據公 式(1. 1)計算出的α值并不唯一,因此,如何從無數對解中找出最合理的解是非常重要的。
[0006] 現有技術中,一般通過color-clustering摳圖算法,確定出最合理的α值。 在color-clustering算法中,通過對圖像中的每個像素點,采用Κ最近鄰(K Nearest Neighbor,簡稱:KNN)算法找到與其最相似的相關像素,用"color ball model"來建立模 型,再結合公式(1. 1)得到α的解。
[0007] 然而,現有技術中,在通過color-clustering算法確定α值的過程中,若對相對 簡單且包含光滑區域較多的圖像進行摳圖時,由于是在圖像的所有像素點中查找最相似的 相關像素,使得摳圖結果容易產生誤差,導致摳圖效果較差。
【發明內容】
[0008] 本發明實施例提供一種基于透明度的摳圖方法和裝置,用以減小摳圖誤差,提高 摳圖效果。
[0009] 第一方面,本發明實施例提供一種基于透明度的摳圖方法,包括:
[0010] 獲取待摳圖的原始圖像,對所述原始圖像進行邊緣檢測,獲得檢測結果;
[0011] 根據所述檢測結果將全局像素或局部像素作為所述原始圖像中的目標像素的鄰 居像素;其中,所述全局像素為在原始圖像中根據全局搜索算法獲得的像素,所述局部像素 為在原始圖像中根據局部搜索算法獲得的像素;
[0012] 根據所述原始圖像和所述鄰居像素獲得所述原始圖像中的目標像素的透明度值 α,根據所述透明度值,在所述原始圖像中摳出目標物體。
[0013] 結合第一方面,在第一方面的第一種可能的實現方式中,所述對所述原始圖像進 行邊緣檢測,具體包括:
[0014] 將所述原始圖像轉換成灰度圖像,對所述灰度圖像進行拉普拉斯濾波和均值濾波 處理,獲得邊緣檢測圖像。
[0015] 結合第一方面、第一方面的第一種可能的實現方式,在第一方面的第二種可能的 實現方式中,所述根據所述檢測結果將全局像素或局部像素作為原始圖像中的目標像素的 鄰居像素,具體包括:
[0016] 判斷所述邊緣檢測圖像中目標像素的像素值是否大于預設閾值;其中,所述邊緣 檢測圖像中的目標像素與所述原始圖像中的目標像素相對應;
[0017] 若是,則采用全局像素作為所述原始圖像中的目標像素的鄰居像素;
[0018] 若否,則采用局部像素作為所述原始圖像中的目標像素的鄰居像素。
[0019] 結合第一方面、第一方面的第一種可能的實現方式,在第一方面的第三種可能的 實現方式中,所述根據所述檢測結果將全局像素或局部像素作為原始圖像中的目標像素的 鄰居像素,具體包括:
[0020] 在所述原始圖像中的目標像素的多個鄰居像素中,確定第一預設數目的鄰居像素 為局部像素,第二預設數目的鄰居像素為全局像素。
[0021] 結合第一方面、第一方面的第一種至第一方面的第三種任一種可能的實現方式, 在第一方面的第四種可能的實現方式中,所述根據所述原始圖像和所述鄰居像素獲得所述 原始圖像中的目標像素的透明度值α,具體包括:
[0022] 根據所述原始圖像和所述鄰居像素獲得拉普拉斯矩陣L ;
[0023] 根據拉普拉斯矩陣L和獲取的輔助圖像構建關于所述原始圖像中目標像素的透 明度的第一目標函數:J(a) = aTLa+A(a -bs)TDs(a -bs);其中,α為透明度值,λ為預 設參數,〇5為Ν*Ν的矩陣,Ν為所述輔助圖像中像素的個數,b 5為N*1的向量,Ν為大于0的 整數;
[0024] 根據所述第一目標函數獲得所述原始圖像中的目標像素的透明度值a。
[0025] 結合第一方面的第四種可能的實現方式,在第一方面的第五種可能的實現方式 中,所述根據所述原始圖像和所述鄰居像素獲得拉普拉斯矩陣L,具體包括:
[0026] 根據公式(1)計算鄰接矩陣W :
[0028] 其中,I為所述原始圖像,k為所述目標像素,i和j為所述鄰居像素集合中兩個不 同的像素點,N k為所述鄰居像素的集合,uk為所述鄰居像素集合中所有像素的均值,Σ ,為 所述鄰居像素集合中所有像素的協方差矩陣;
[0029] 根據公式(2)計算獲得拉普拉斯矩陣L :
[0030] L = D-W (2)
[0031] 其中,D為度矩陣,通過公式D"= Σ 獲得。
[0032] 結合第一方面、第一方面的第一種至第一方面的第五種任一種可能的實現方式, 在第一方面的第六種可能的實現方式中,所述根據所述拉普拉斯矩陣L和獲取的輔助圖像 構建關于所述原始圖像中目標像素的透明度的第一目標函數:J(a) = aTLa+A (a-bs) TDS ( a -bs),具體包括:
[0033] 根據所述拉普拉斯矩陣L構建關于目標像素的透明度的第二目標函數:
[0034] f ( a ) = a TL a ;
[0035] 獲取所述輔助圖像,并將所述輔助圖像的背景用黑色進行標記,前景用白色進行 標記,其它部分用灰色進行標記,以獲取標記后的輔助圖像;
[0036] 根據所述第二目標函數和所述標記后的輔助圖像構建關于所述原始圖像中目標 像素的透明度的第一目標函數:
[0037] J(a) = aTLa+A(a -bs) TDS ( a -bs)。
[0038] 結合第一方面、第一方面的第一種至第一方面的第六種任一種可能的實現方式, 在第一方面的第七種可能的實現方式中,所述根據所述第一目標函數獲得所述原始圖像中 目標像素的透明度值a之前,還包括:
[0039] 根據所述第一目標函數獲得alpha圖像:(L+XDS) a = Abs。
[0040] 第二方面,本發明實施例提供一種基于透明度的摳圖裝置,包括:
[0041] 檢測模塊,用于獲取待摳圖的原始圖像,對所述原始圖像進行邊緣檢測,獲得檢測 結果;
[0042] 處理模塊,用于根據所述檢測結果將全局像素或局部像素作為所述原始圖像中目 標像素的鄰居像素;其中,所述全局像素為在原始圖像中根據全局搜索算法獲得的像素,所 述局部像素為在原始圖像中根據局部搜索算法獲得的像素;
[0043] 第一獲取模塊,用于根據所述原始圖像和所述鄰居像素獲得所述原始圖像中的目 標像素的透明度值a,根據所述透明度值,在所述原始圖像中摳出目標物體。
[0044] 結合第二方面,在第二方面的第一種可能的實現方式中,所述檢測模塊包括:
[0045] 獲取單元,用于將所述原始圖像轉換成灰度圖像,對所述灰度圖像進行拉普拉斯 濾波和均值濾波處理,獲得邊緣檢測圖像。
[0046] 結合第二方面、第二方面的第一種可能的實現方式,在第二方面的第二種可能的 實現方式中,所述處理模塊還包括:
[0047] 判斷單元,用于判斷所述邊緣檢測圖像中目標像素的像素值是否大于預設閾值; 其中,所述邊緣檢測圖像中的目標像素與所述原始圖像中的目標像素相對應;
[0048] 若是,則采用全局像素作為所述原始圖像中的目標像素的鄰居像素;
[0049] 若否,則采用局部像素作為所述原始圖像中的目標像素的鄰居像素。
[0050] 結合第二方面、第二方面的第一種可能的實現方式,在第二方面的第三種可能的 實現方式中,所述處理模塊還包括:
[0051] 確定單元,用于在所述原始圖像中的目標像素的多個鄰居像素中,確定第一預設 數目的鄰居像素為局部像素,第二預設數目的鄰居像素為全局像素。
[0052] 結合第二方面、第二方面的第一種至第二方面的第三種任一種可能的實現方式, 在第二方面的第四種可能的實現方式中,所述第一獲取模塊包括:
[0053] 拉普拉斯矩陣L獲取單元,用于根據所述原始圖像和所述鄰居像素獲得拉普拉斯 矩陣L ;
[0054] 第一目標函數獲取單元,用于根據拉普拉斯矩陣L和獲取的輔助圖像構建關于目 標像素的透明度的第一目標函數:J(a ) = a TLa+λ (a-bs)TDs(a-bs);其中,a為透明度 值,λ為預設參數,〇 5為N*N的矩陣,N為所述輔助圖像中像素的個數,b 5為N*1的向量,N 為大于〇的整數;
[0055] 透明度值獲取單元,用于根據所述第一目標函數獲得所述目標像素的透明度值 a 〇
[0056] 結合第二方面的第四種可能的實現方式,在第二方面的第五種可能的實現方式 中,所述拉普拉斯矩陣L獲取單元,具體用于:
[0057] 根據公式(1)計算鄰接矩陣W :
[0059] 其中,I為所述原始圖像,k為所述目標像素,i和j為所述鄰居像素集合中兩個不 同的像素點,N k為所述鄰居像素的集合,uk為所述鄰居像素集合中所有像素的均值,Σ ,為 所述