Error using huffman code
Ältere Kommentare anzeigen
I get error
Error using ==> huffmandict at 72
The symbol input must be a vector
Error in ==> Untitled3 at 5
[dict,avglen]=huffmandict(symbols,p)
wen using the code
A=imread('lena.jpg');
A=rgb2gray(A);
[symbols,p]=hist(A,double(unique(A)));
p=p/sum(p)
[dict,avglen]=huffmandict(symbols,p)
comp=huffmanenco(A,dict)
please help
Antworten (1)
Walter Roberson
am 11 Dez. 2012
1 Stimme
Remember that hist() applied to an array (rather than a vector) histograms by column. This behavior is not documented, though: what is documented is that you must hist() a vector.
12 Kommentare
kash
am 11 Dez. 2012
kash
am 11 Dez. 2012
Walter Roberson
am 11 Dez. 2012
Yes, but your problem with symbols needing to be a vector is solved.
I am not surprised that your symbols repeat. I would rather expect that when you use counts as the symbols.
kash
am 11 Dez. 2012
Walter Roberson
am 11 Dez. 2012
You should be passing a vector of symbols at that point. And the p vector should be the vector of the probabilities of each symbol.
I cannot correct the code for you because you need to decide which symbols you are going to use. Symbols can be intended to represent different numbers of bits. For example if you often had 10 consecutive 0 bits, then it might be worth creating a symbol for that.
kash
am 11 Dez. 2012
kash
am 11 Dez. 2012
Walter Roberson
am 11 Dez. 2012
The "solution" is for you to decide which symbols you are going to use, and calculate the appropriate probabilities. Just like I could tell you that there is a special on "Liver and Brussel Sprouts", but you need to decide for yourself what you want to order off the menu.
kash
am 11 Dez. 2012
Walter Roberson
am 11 Dez. 2012
So you are indicating to me that you want to have exactly two symbols, 'cA' and 'cH' ?
huffmandict({'cA', 'cH'}, p)
kash
am 11 Dez. 2012
Walter Roberson
am 11 Dez. 2012
I think you should go back and study the theory about what a "symbol" is for the purposes of huffman encoding.
Kategorien
Mehr zu Large Files and Big Data finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!