簡體   English   中英

我應該使用圖像的什么值來產生哈爾小波?

[英]what values of an image should I use to produce a haar wavelet?

我目前有一個Java程序,它將獲取圖像中每個像素的rgb值。 我也有一種方法可以在二維值矩陣上計算Haar小波。 但是,我不知道應該為計算Haar小波的方法提供哪些值。 我應該對每個像素的rgb值取平均值,然后在其上計算一個haar小波嗎? 或僅使用r,g,b中的1個。 我正在嘗試為圖像創建唯一的指紋。 我在其他地方讀到這是一個好方法,因為我可以取兩個小波的點積,以查看圖像之間的相似程度。

請讓我知道在計算Haar小波時應使用的值。 謝謝傑西

您應該將R / G / B組件視為不同的圖像:為R,G和B分別創建一個矩陣,然后將小波分別應用於其中的一部分。

然后,您可以從3個小波壓縮通道中重建R / G / B圖像,最后將它們組合為3通道位圖。

由於eznme沒有回答您的問題(您想要指紋,他解釋了壓縮和重建),因此您經常會遇到以下一種方法:

您將顏色和亮度信息(色度和亮度)分開,然后對它們進行加權。 有時,您甚至會丟掉色度,僅使用亮度部分。 這樣可以大大減少指紋的大小(約三倍),並考慮到我們如何感知圖像-主要是通過局部亮度而不是絕對顏色。 另外,您還可以獲得一些有關圖像色彩處理的魯棒性。

分離可以通過不同的方式完成,例如將RGB圖像轉換為YUVYIQ顏色空間。 如果只想保留亮度分量,則這兩個顏色空間是等效的。 但是,它們對色度的編碼方式不同。 這是RGB亮度Y的線性變換:Y = 0.299 * R + 0.587 * G + 0.114 * B

當您看一下數學時,您會注意到我們除了創建灰度圖像外沒有做任何其他事情-考慮到當它們在數值上相等時,我們感覺到綠色比紅色亮,紅色比藍色亮。

如果要保留一些色度信息,為了使指紋盡可能簡潔,可以降低兩個U,V分量的分辨率(每個分量實際上為8位)。 因此,您可以通過將它們的信息減少到4位並將它們與shift運算符組合在一起,將它們都合並為一個8位值(不知道在Java中如何工作)。 在最終的指紋距離計算(您提到的點積)中,與亮度相比,色度應更輕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM