計算機視覺之混合圖像(Hybrid)

這是之前做過的一個關于實現(xiàn)Hybrid Image的小項目,有錯誤及不足的地方還請批評指正~

怎么理解圖像的高低頻?

圖像的低頻部分可以理解為“輪廓”,比如人臉的臉型。

圖像的高頻部分可以理解為“細節(jié)”,比如人臉的皺紋、斑點等。

因此,我們常說,對圖像做模糊處理后得到了圖像的低頻部分,對圖像做銳化處理會讓圖像的高頻信息更多。(看到這里,玩過攝影的朋友是不是想到了人像處理中常用的“高低頻磨皮”~)

為什么放大縮小圖片會看到不同的結果?

在了解了圖像高低頻的定義后,我們就不難理解為什么遠近看混合圖像會感覺效果不同。

當我們放大混合圖像時,可以清楚地看到高頻信息,于是人眼更傾向于識別這部分的信息。相反地,當我們縮小圖片時,高頻信息就不那么容易被觀察到了,這時候我們我們就更傾向于識別低頻的部分。

這里我做了一張哈利波特和伏地魔的混疊圖像??梢钥吹?,當圖像放大時我們看到的是哈利波特,而當圖片縮小時,我們會認為這張圖片是描述伏地魔的。

如何實現(xiàn)混合圖像的效果?

實現(xiàn)的總體思路很簡單——將只有低頻信息的圖片和只有高頻信息的圖像疊加在一起。具體步驟如下:

1. 取第一張圖片:

????a. 準備好低頻的濾波器(常用高斯模糊)

????b. 將圖像轉為矩陣,分層(如JPG圖像會分成RGB三層)處理。其中,第一二列表示圖像的橫縱坐標,第三列存儲不同的層的index(如JPG有0-2,PNG有0-3(其中第四層(3)存的是透明度));舉個栗子,[;, ;, 0] 指的是R層的數據點

????c. 每一個維度的圖片分別與高斯濾波器做卷積

2. 取第二張圖片:

????a. 準備好低頻的濾波器(常用高斯模糊)

????b. 將圖像轉為矩陣

????c. 每一個維度的圖片分別與高斯濾波器做卷積

????d. 用原圖矩陣減去卷機后的矩陣,得到高頻圖矩陣

3. 將兩個處理后的圖像矩陣相加,得到混合圖像

如何用代碼實現(xiàn)?

https://github.com/MinisculeDust/Hybrid-Image

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容