當該數據集的關鍵字是字符串時,我們有Trie結構來高效地訪問數據。如果數據集的關鍵是圖像,那麼最好的索引是什麼?用於訪問數據庫中數據的圖像索引
按鍵,我的意思是某些唯一區分數據的東西。這是一個不太常用的場景,即通過圖像訪問數據?我確實覺得有些應用程序在使用時就像指紋數據庫一樣。
散列在這種情況下有幫助嗎?我的意思是將圖像散列到唯一的數字中,具體取決於像素值。
請分享任何關於此的指針。
歡呼
當該數據集的關鍵字是字符串時,我們有Trie結構來高效地訪問數據。如果數據集的關鍵是圖像,那麼最好的索引是什麼?用於訪問數據庫中數據的圖像索引
按鍵,我的意思是某些唯一區分數據的東西。這是一個不太常用的場景,即通過圖像訪問數據?我確實覺得有些應用程序在使用時就像指紋數據庫一樣。
散列在這種情況下有幫助嗎?我的意思是將圖像散列到唯一的數字中,具體取決於像素值。
請分享任何關於此的指針。
歡呼
我不是100%肯定,你想要做什麼,但哈希應該給你一個唯一的字符串與識別圖像。你沒有指定你的語言,但是大多數函數都具有散列整個文件數據的功能,所以你可以通過它來運行圖像文件。 (例如,PHP有md5_file()
)
您可以使用散列函數根據圖像查找項目。但是我看不到這種場景的實際用途。
諸如指紋識別,人臉識別或物體識別等應用程序執行特徵提取過程。這意味着他們將複雜的圖像結構轉換爲更簡單的特徵向量,可以將其與存儲的模式進行比較。
真正的努力工作是特徵提取過程,必須從圖像中的「噪聲」中分離出重要的信息。
只對圖像進行哈希將不會產生可用的功能。我唯一需要考慮的方法就是構建一個圖像數據庫。但即使在這種情況下,SHA1或MD5的常用散列函數也沒有多大用處,因爲修改單個像素或像作者這樣的元數據會改變散列,並且無法基於常用的散列函數來識別這兩個圖像。
目前還不清楚你試圖解決什麼問題。你完全可以獲得整個圖像的散列,並將其用作Trie結構中的一個鍵,儘管我認爲在這種情況下,Trie結構幾乎不會給常規散列表帶來任何性能優勢,因爲您正在執行一個)每次你做一次查找時都會散列。
如果您正在實現一些您想要比較兩張圖像或快速在樹中查找相似圖像的內容,可以考慮使用圖像的GIF或JPEG標頭作爲密鑰的開頭。這會導致具有相似類型,大小,索引顏色等的圖像在Trie結構內彼此靠近分組。只有在發生碰撞時(也就是說,Trie中具有完全相同標題的多個圖像),纔可以爲圖像計算哈希值。
你的意思是使用圖像作爲你的鑰匙?你的意思是一個圖像標識符或文件名? – Uri 2009-04-09 21:25:35