error in arithenco and arithdeco

original=imread('Lena.bmp'); % Read an image Lena 512*512 to original variable
seq=mortonx(original); % convert the matrix original into a vector by morton scan order which is a fucntion i made up by myself
ta=tabulate(seq); % create a three column with the internal function ... first column is the symbol... second is the times it occured ... third is the propability
count=ta(:,2); %copy the count column into count variable from ta variable
code=arithenco(seq,count); %appply the arithmetic coding ...
new=arithdeco(code,count,262144); %apply the arithmetic decoding to restore the original image ...
isequal(seq,new); % to see if seq and new are equal ....
% ??? Error using ==> arithenco at 36
% The symbol sequence parameter must be a vector of positive finite integers.

1 Comment

can you send the or post the function which converts the image into vector by morton scanning

Sign in to comment.

Answers (2)

Wayne King
Wayne King on 26 Oct 2011
arithenco() expects an input like [1 2 3 4].
what is seq?

1 Comment

I mean you told us seq comes from your function mortonx, but is it a vector of positive integers?

Sign in to comment.

Diyar Aldusky
Diyar Aldusky on 27 Oct 2011
mortonx function is a function that just convert the matrix to a vector according to morton scan order .... it dont change the values of the matrix .... it just convert from matrix to vector ... to be from 512*512 to 1*262144 diementions ... and the values mean the same ...you can just type seq=reshape(original,1*262144) ... but after that i get the same error as i get from the begining ...

1 Comment

Diyar, it's not important just that it is a vector, what are the values in original, are they all positive integers as I asked you in my first answer.

Sign in to comment.

Categories

Asked:

on 26 Oct 2011

Community Treasure Hunt

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

Start Hunting!