2011-08-18 31 views
0

我已被分配使用香農 - 法諾技術編碼和解碼圖像。我將在Matlab中編寫。Shannon-Fano編碼與圖像

我能夠在Matlab中訪問圖像的數據數組,所以我可以看到每個像素的值。我理解使用Shannon-Fano技術的基本知識,而不是圖像。

我需要遍歷每個像素並計算每個像素值的出現次數嗎?

感謝您指點我正確的方向。

回答

4

想象一下,這張圖片實際上是一個文字,每一個像素都是一個字母。如果你有8位圖片,那麼你可能有256個不同的字母。你將如何編碼256個不同字母的文字?是的,就像你用26個不同的字母或者5個不同的字母來編碼文本一樣。

你想要在每種情況下做什麼,是製作一個直方圖,根據每個值的頻率進行排序,然後對圖像/文本進行編碼。所以是的,你必須計算每個像素值。祝你好運!

+0

非常感謝您的幫助!當我工作時,我一定會考慮這一點。 – ardavis

1

是的,因爲你想要每個可能的像素值的頻率。如果您需要快速,您也可以嘗試採取較小的樣本並估算頻率。這裏最簡單的方法是創建一個與可能值的數量相同的整數的整數。而對於文本,符號將是字或字母,對於圖像,符號是每個像素的值。

+0

謝謝,我將與圖像合作。它似乎可能需要很長時間才能遍歷整個數組,計數值,然後再次遍歷數組以對其進行編碼,我想。但這是有道理的。 – ardavis

+0

不會太長,至少對於電腦來說。但是這是可以預料的,一張圖像比幾行文字載有更多的信息。畢竟,一張圖片勝過千言萬語。 – Jems