2011-08-18 92 views
0

我已被分配使用香农 - 法诺技术编码和解码图像。我将在Matlab中编写。Shannon-Fano编码与图像

我能够在Matlab中访问图像的数据数组,所以我可以看到每个像素的值。我理解使用Shannon-Fano技术的基本知识,而不是图像。

我需要遍历每个像素并计算每个像素值的出现次数吗?

感谢您指点我正确的方向。

回答

4

想象一下,这张图片实际上是一个文字,每一个像素都是一个字母。如果你有8位图片,那么你可能有256个不同的字母。你将如何编码256个不同字母的文字?是的,就像你用26个不同的字母或者5个不同的字母来编码文本一样。

你想要在每种情况下做什么,是制作一个直方图,根据每个值的频率进行排序,然后对图像/文本进行编码。所以是的,你必须计算每个像素值。祝你好运!

+0

非常感谢您的帮助!当我工作时,我一定会考虑这一点。 – ardavis

1

是的,因为你想要每个可能的像素值的频率。如果您需要快速,您也可以尝试采取较小的样本并估算频率。这里最简单的方法是创建一个与可能值的数量相同的整数的整数。而对于文本,符号将是字或字母,对于图像,符号是每个像素的值。

+0

谢谢,我将与图像合作。它似乎可能需要很长时间才能遍历整个数组,计数值,然后再次遍历数组以对其进行编码,我想。但这是有道理的。 – ardavis

+0

不会太长,至少对于电脑来说。但是这是可以预料的,一张图像比几行文字载有更多的信息。毕竟,一张图片胜过千言万语。 – Jems