huffman encoding for image

8 visualizaciones (últimos 30 días)
Nidhi Kumari
Nidhi Kumari el 9 de Oct. de 2018
Comentada: Walter Roberson el 26 de Oct. de 2018
for the code-
A=imread('xyz.jpg');
A1=rgb2gray(A);
A = A1(:);
[symbols,p]=hist(A,double(unique(A)))
p=p/sum(p)
symbols=symbols/sum(symbols)
[dict,avglen]=huffmandict(symbols,p)
comp=huffmanenco(A,dict)
i am getting error-
Error using huffmandict (line 164)
Source symbols repeat
Error in new (line 7)
[dict,avglen]=huffmandict(symbols,p)
suggest necessary changes
  3 comentarios
Nidhi Kumari
Nidhi Kumari el 10 de Oct. de 2018
But how to make them same?
KALYAN ACHARJYA
KALYAN ACHARJYA el 10 de Oct. de 2018
@Nidhi
I have updated the answer, please check here

Iniciar sesión para comentar.

Respuesta aceptada

OCDER
OCDER el 10 de Oct. de 2018
I haven't used huffmandict before, but based on the document and the error message you have, I suspect your inputs are wrong.
Double check your inputs to huffmandict. Make sure symbols are unique values, and p are the probability of each value. That means:
[symbols, p] = hist(A,double(unique(A))) should be
[p, symbols] = hist(A,double(unique(A))) because the 1st output of hist is the frequency (probability)
and the second output is the unique bin (unique symbol)
  30 comentarios
Walter Roberson
Walter Roberson el 26 de Oct. de 2018
You are using a version of MATLAB no later than R2017b: I can tell because is_a_valid_code was removed from huffmandeco as of R2018a.
Looking at the amount of memory you have, I suspect you are running R2015b or earlier with a 32 bit MATLAB.
When I test with peppers.png on R2017b on my system, the decoding took about 53 seconds.
Walter Roberson
Walter Roberson el 26 de Oct. de 2018
I have a memory of having reported an inefficiency to MATLAB having to do with is_a_valid_code, that it was being called far too often. However, I do not seem to find that in my case list, so perhaps I reported it years ago on a different license.
Anyhow: upgrading to R2018a or later would probably speed up quite a bit.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by